一. 语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
二. 基本查询
1. 查询多个字段
# 查询特定字段
SELECT 字段1 [[AS] 别名1], 字段2[[AS] 别名2], 字段3[[AS] 别名3], ... FROM 表名;
# 查询所有字段,性能稍弱
SELECT * FROM 表名;
# 结果去重
SELECT DISTINCT 字段列表 FROM 表名;
三. 条件查询
1. 语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2. 条件
| 比较运算符 | 功能 |
|---|
| 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| = | 等于 |
| <> 或 != | 不等于 |
| BETWEEN ... AND ... | 在某个递增范围内 边界闭合 |
| IN(...) | 在集合内 |
| LIKE 占位符 | 模糊匹配 _匹配单个字符,%匹配任意个字符 |
| IS NULL | 是空 |
| 逻辑运算符 | 功能 |
|---|
| AND 或 && | 并且 |
| OR 或 || | 或者 |
| NOT 或 ! | 非 |
四. 聚合函数
1. 介绍
将一列数据作为一个整体,进行纵向计算。所有 NULL 值不参与聚合函数计算
2. 常见聚合函数
| 函数 | 功能 |
|---|
| count | 计数 |
| max | 最大值 |
| min | 最小值 |
| avg | 平均值 |
| sum | 求和 |
3. 语法
SELECT 聚合函数(字段名) FROM 表名;
五. 分组查询
1. 语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
WHERE 与 HAVING 区别
- 执行时机不同:WHERE 是分组前过滤,HAVING 是分组后过滤
- 判断条件不同:WHERE 是不能对聚合函数做判断的,而 HAVING 可以
六. 排序查询
1. 语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2, 排序方式2, ...;
2. 排序方式
七. 分页查询
1. 语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
八. 执行顺序
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- ORDER BY
- LIMIT