该笔记内容来源于黑马程序视频课02. 基础-课程内容&数据库相关概念_哔哩哔哩_bilibili
1、DQL
(1)DQL语法:
命令编写顺序:
(1)SELECT后跟 字段列表,用于基本查询
(2)FROM后跟 表名列表,用于条件查询
(3)WHERE后跟 条件列表,用于聚合函数(count/max/min/avg/sum等)
(4)GROUP BY后跟 分组字段列表,用于分组查询
(5)HAVING 后跟 分组后条件列表
(6)ORDER BY后跟 排序字段列表,用于排序查询
(7)LIMIT后跟 分页参数
命令执行顺序:FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY->LIMIT
(2)基本查询:
(1)查询多个字段
SELECT 字段1, 字段2, 字段3, ...FROM 表名;
SELECT * FROM 表名;
(2)设置别名
SELECT 字段1 [AS 别名1], 字段2[AS 别名2]...FROM 表名; # 其中AS可以省略
(3)去除重复的字段记录
SELECT DISTINCT 字段列表 FROM 表名;
注:在开发过程中,尽量不要用*,写明所有字段更好。
(3)条件查询:SELECT 字段列表 FROM 表名 WHERE 条件列表;
比较运算符 | 功能 | 逻辑运算符 | 功能 |
>, >=, <, <=, =, <> 或 != | 略 | AND 或 && | 并且(多个条件同时成立) |
BETWEEN 最小值 AND 最大值 | 在某个范围之内(包含最大值和最小值) | OR 或 || | 或者(多个条件任意一个成立) |
IN (...) | 在in之后的列表中的值,多选一 | NOT 或 | | 非,不是 |
LIKE 占位符 | 模糊匹配(下划线'_'用于匹配单个字符,'%'匹配任意个字符) | ||
IS NULL | 是NULL |
(4)聚合函数:SELECT 聚合函数(字段列表) FROM 表名;
将一列数据作为一个整体,进行纵向计算,常见的聚合函数有:
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
注:NULL不参与聚合函数的运算。
(5)分组查询:SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后的过滤条件];
注:WHERE和HAVING的区别在于:
- 执行时机不同:WHERE是分组之前进行过滤,不满足WHERE条件就不参与分组;HAVING是分组后对结果进行过滤。
- 判断条件不同:WHERE不能对聚合函数进行判断,但HAVING可以。
(6)排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
注:其中ASC表示升序(默认就是升序排序,故可省略ASC),DESC表示降序,如果是多字段排序,当第一个字段对应的数值相同时,才会根据第二个字段进行排序(相当于多级排序)。
(7)分页查询:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
注:
- 起始索引从0开始,起始索引=(查询页码-1) 每一页显示记录数。
- 分页查询是数据库的放眼,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为LIMIT 查询记录数。