④【数据查询】MySQL查询语句,拿来即用。

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: ④【数据查询】MySQL查询语句,拿来即用。


④【数据查询】MySQL查询语句,拿来即用。


1. 语法编写顺序 以及 执行顺序

DQL - 语法(编写顺序)

SELECT
  字段列表
FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段列表
HAVING
  分组后条件列表
ORDER BY
  排序字段列表 排序规则
LIMIT
  分页参数


执行顺序

FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段列表
HAVING
  分组后条件列表
SELECT
  字段列表
ORDER BY
  排序字段列表 排序规则
LIMIT
  分页参数
  • 查询表 ==> 分组前条件过滤 ==> 分组 ==> 分组后条件过滤 ==> 获取哪些字段 ==> 按照字段排序 ==> 分页显示




2. 基本查询

DQL - 基本查询

  • 基本查询
  • ①查询多个字段
SELECT 字段1,字段2,字段3... FROM 表名;
SELECT * FROM 表名;

  • ②设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2]... FROM 表名;

  • ③去除重复记录(DISTINCT关键字)
SELECT DISTINCT 字段1,字段2,字段3... FROM 表名;
SELECT DISTINCT * FROM 表名;




3. 条件查询

DQL - 条件查询

  • ①根据条件查询字段
SELECT 字段列表 FROM 表名 WHERE 条件;

  • 条件:
  • ①比较运算符:
  • >:大于
  • >=:大于等于
  • <:小于
  • <=:小于等于
  • =:等于
  • <>!=:不等于
  • BETWEEN...AND...:在某个范围以内(含最小、最大值)
  • IN(...):IN(…)括号内列表中的值,多选一
  • LIKE '占位符':模糊匹配(_匹配单个字符,%匹配任意个字符)
  • IS NULL:是NULL
  • ②逻辑运算符:
  • AND&&:并且(多个条件同时成立)
  • OR||:或者(多个条件任意一个成立)
  • NOT!:非,不是




4. 聚合函数

聚合函数

  • count():统计数量
  • max():求最大值
  • min():求最小值
  • avg():求平均值
  • sum():求和
  • 注意:null值不参与所有聚合函数的运算。

  • 使用聚合函数查询:
SELECT 聚合函数(字段列表) FROM 表名;
-- 演示:
-- 员工表,表名:emp
-- 统计emp员工表的员工数量
SELECT COUNT(*) FROM emp;
-- 统计员工的平均年龄,字段age表示年龄
SELECT AVG(age) FROM emp;
-- 统计员工的最大年龄
SELECT MAX(age) FROM emp;
-- 统计员工的最小年龄
SELECT MIN(age) FROM emp;
-- 统计广东地区员工的年龄之和
-- 地区字段:workaddress
SELECT SUM(age) FROM emp WHERE workaddress = '广东';




5. 分组查询

DQL - 分组查询

  • 分组查询数据:
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

  • WHEREHAVING 区别:
  • 执行时机不同:where是分组之前进行过滤,不满足where的条件,不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同:where不能使用聚合函数进行操作,而having可以
-- 演示
-- 根据性别分组,统计男性员工和女性员工的数量
-- 性别字段:sex
SELECT sex,COUNT(*) 
FROM emp 
GROUP BY sex;
-- 根据性别分组,统计男性员工和女性员工的平均年龄
-- 性别字段:sex;年龄字段:age
SELECT sex,AVG(age) 
FROM emp 
GROUP BY sex;
-- 查询年龄小于45岁的员工,根据工作地址分组,获取员工数量大于3的工作地址
SELECT workaddress,COUNT(*) 
WHERE age < 45
GROUP BY workaddress
HAVING COUNT(*) > 3;




6. 排序查询

DQL - 排序查询

  • 查询并排序
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序规则1,字段2 排序规则2;

  • 排序规则:
  • ASC —— 升序(默认值)
  • DESC —— 降序
  • 若不指定排序规则,默认按照升序排序。
  • 如果指定了多个排序字段,排序的数据只有当第一个字段值相同时,才会根据第二个字段进行排序。




7. 分页查询

DQL - 分页查询

  • 对查询进行分页:
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

  • 注意:
  • ①起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示的查询记录数
  • ②分页查询在不同的数据库中实现方式不同,MySQL是LIMIT
  • ③如果查询的是第一页数据,可以省略起始索引,直接LIMIT 10





相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
Go
golang使用gorm操作mysql3,数据查询
golang使用gorm操作mysql3,数据查询
|
3天前
|
存储 算法 关系型数据库
MySQL怎样处理排序⭐️如何优化需要排序的查询?
MySQL怎样处理排序⭐️如何优化需要排序的查询?
|
3天前
|
SQL 关系型数据库 MySQL
MySQL数据库的约束+进阶版新增与查询-2
MySQL数据库的约束+进阶版新增与查询
12 1
|
3天前
|
关系型数据库 MySQL 测试技术
MySQL数据库的约束+进阶版新增与查询-1
MySQL数据库的约束+进阶版新增与查询
14 1
|
3天前
|
SQL 存储 关系型数据库
MySQL查询原理,看这一篇就够了!
MySQL查询原理,看这一篇就够了!
|
6天前
|
SQL 关系型数据库 MySQL
MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇
MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇
|
8天前
|
缓存 关系型数据库 MySQL
为什么MySQL分页查询偏移量越大查询越慢
【5月更文挑战第1天】为什么MySQL分页查询偏移量越大查询越慢
44 4
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句

推荐镜像

更多