SQL-DQL

121 阅读2分钟

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.条件

条件.jpg

DQL-聚合函数

1.介绍
将一列数据作为一个整体进行纵向计算。
2.常见的聚合函数
常见的聚合函数.jpg 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], ...;

使用要点

  1. ASC:升序排序(默认值,可省略)
  2. DESC:降序排序
  3. 多列排序:先按第一列排序,相同值再按第二列排序
  4. 支持表达式排序:可使用计算字段或函数结果排序

DQL-分页查询 (LIMIT)

基本语法

SELECT 列名1, 列名2, ...FROM 表名LIMIT [偏移量,] 行数;

使用要点

  1. 偏移量:从第几条记录开始获取(默认0,第一条记录)
  2. 行数:要返回的记录数量
  3. 分页公式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-查询执行顺序

标准执行顺序

  1. FROM 和 JOIN(确定数据来源)
  2. WHERE(行级过滤)
  3. GROUP BY(分组)
  4. HAVING(组级过滤)
  5. SELECT(选择列)
  6. DISTINCT(去重)
  7. ORDER BY(排序)
  8. LIMIT(限制结果数量)

重要说明

  1. SELECT中的别名:不能在WHERE中使用,但可以在ORDER BY中使用
  2. 聚合函数:只能在SELECT、HAVING和ORDER BY中使用
  3. 执行顺序可视化: 原始数据 → FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT → 最终结果