DQL-介绍
DQL的全称英文名叫Data Query Language(数据查询语言),用来查询数据库中的表的记录。
查询关键字:select
DQL-基本查询
1.查询多个字段
select 字段1,字段2,字段3...from表名;
select*from 表名;
2.设置别名
select 字段1[as 别名1],字段2[as别名2]...frpm表名;
3.去除重复记录
select distinct字段列表 from 表名;
DQL-条件查询
1.语法
select 字段列表from 表名where 条件列表;
2.条件
DQL-聚合函数
1.介绍
将一列数据作为一个整体进行纵向计算。
2.常见的聚合函数
3.语法
select 聚合函数(字段列表)from 表名;
DQL-分组查询
1.语法
select 字段列表 from 表名[where 条件]group by 分组字段名[having 分组后过滤条件];
2.where与having的区别
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
DQL-排序查询 (ORDER BY)
基本语法
SELECT 列名1, 列名2, ...FROM 表名ORDER BY 排序列1 [ASC|DESC], 排序列2 [ASC|DESC], ...;
使用要点
- ASC:升序排序(默认值,可省略)
- DESC:降序排序
- 多列排序:先按第一列排序,相同值再按第二列排序
- 支持表达式排序:可使用计算字段或函数结果排序
DQL-分页查询 (LIMIT)
基本语法
SELECT 列名1, 列名2, ...FROM 表名LIMIT [偏移量,] 行数;
使用要点
- 偏移量:从第几条记录开始获取(默认0,第一条记录)
- 行数:要返回的记录数量
- 分页公式:
LIMIT (页码-1)*每页数量, 每页数量
示例代码
-- 获取前10条记录
SELECT * FROM orders LIMIT 10;
-- 跳过前20条,获取之后的10条记录
SELECT * FROM products LIMIT 20, 10;
-- 分页查询(第3页,每页15条)
SELECT * FROM customers
ORDER BY registration_date DESC
LIMIT 30, 15; -- (3-1)*15=30
-- 与ORDER BY结合使用(获取价格最高的10个产品)
SELECT * FROM products
ORDER BY price DESC
LIMIT 10;
DQL-查询执行顺序
标准执行顺序
- FROM 和 JOIN(确定数据来源)
- WHERE(行级过滤)
- GROUP BY(分组)
- HAVING(组级过滤)
- SELECT(选择列)
- DISTINCT(去重)
- ORDER BY(排序)
- LIMIT(限制结果数量)
重要说明
- SELECT中的别名:不能在WHERE中使用,但可以在ORDER BY中使用
- 聚合函数:只能在SELECT、HAVING和ORDER BY中使用
- 执行顺序可视化: 原始数据 → FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT → 最终结果