MySQL②DQL基本语法、执行顺序
浅浅总结 DQL
DQL(Data Query Language):数据查询语言
用于查询数据库中表的记录。
本文是总结性文章,用于个人复习,不适合初学。
基本语法
SELECT
FROM
JOIN
ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
- 基本查询(
SELECT不带任何条件)*:所有字段,尽量少用(不直观、影响效率)- 别名
- 去重:
DISTINCT
- 条件查询(
WHERE)- 比较运算符
>、<、>=、<=、=、!=或<>BETWEEN ... AND ...、IN(...)LIKE ...、IS NULL
- 逻辑运算符
AND或&&OR或||NOT或!
- 比较运算符
- 聚合函数(
NULL不参与聚合函数运算)COUNTMAXMINAVGSUM
- 分组查询(
GROUP BY)- 支持多字段分组
- 可以使用
HAVING进行分组后过滤 HAVING:分组后过滤,且支持对聚合函数的判断
- 排序查询(
ORDER BY)ASC:升序,默认DESC:降序- 支持多字段排序,按顺序先后排序
- 例:按姓名升序,姓名相同则按年龄降序
(ORDER BY age, name DESC)
- 分页查询(
LIMIT)- 语法:
LIMIT 起始索引, 每页记录数 - 起始索引 = (查询页码 - 1)* 每页记录数
- 例:查询第 3 页数据,每页展示 10 条记录
(LIMIT 20, 10)
- 语法:
执行顺序
(7) SELECT
(1) FROM
(3) JOIN
(2) ON
(4) WHERE
(6) HAVING
(8) ORDER BY
(9) LIMIT
- SELECT:选择指定列
- DISTINCT:指定列去重
- FROM:指定查询的表,计算笛卡尔积
- JOIN:连接类型,添加关联外部表数据
- ON:连接条件
- WHERE:条件查询(分组前过滤)
- GROUP BY:分组查询
- HAVING:条件查询(分组后过滤)
- ORDER BY:排序查询
- LIMIT:分页查询