DQL
查询语句
1. 排序查询
- 语法 ->
ORDER BY ~~子句~~
ORDER BY 排序字段1 排序方式1, 排序字段2 排序方式2,...;
SELECT * FROM ~~表名~~ ORDER BY ~~字段~~ DESC, ~~字段~~ DESC;
- 排序方式
ASC
-> 升序(默认)DESC
-> 降序
- 注意: 如果有多个排序条件,则当前面的条件值一样时, 才会判断第二条件
2. 聚合函数
- 将一列数据作为一个整体,进行纵向计算
COUNT
-> 计算个数- 排除NULL(选择不包含NULL的列) -> 主键
SELECT COUNT(~~字段~~ (id,0)) FROM ~~表名~~;
MAX
-> 计算最大值SELECT MAX(~~字段~~) FROM ~~表名~~;
MIN
-> 计算最小值SELECT MIN(~~字段~~) FROM ~~表名~~;
SUM
-> 计算和SELECT SUM(~~字段~~) FROM ~~表名~~;
AVG
-> 计算平均值SELECT AVG(~~字段~~) FROM ~~表名~~;
3.分组查询
- 语法 ->
GROUP BY ~~分组字段~~;
SELECT sex AS "性别",COUNT(id) AS "人数",AVG(score) AS "平均分" FROM student GROUP BY sex;
- 注意
- 分组之后查询的字段: 分组字段 / 聚合函数
WHERE
和HAVING
的区别:WHERE
在分组之前进行限定, 不满足条件的不进行分组 -HAVING
在分组之后限定, 不满足条件则不会被查询出来WHERE
后不可以根聚合函数 - HAVING 可进行聚合函数的判断
4.分页查询 -> 方言
- 语法 ->
limit ~~开始的索引~~,~~每页查询的条数~~;
SELECT * FROM ~~表名~~ LIMIT start, len
- 公式: 开始的索引 = (当前的页码 - 1) * 每页显示的条数
查询表中的记录
SELECT * FROM ~~表名~~;
1. 语法
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段 HAVING 分组后的条件 ORDER BY 排序 limit 分页限定;
2. 基础查询
- 多个字段查询
SELECT ~~字段1~~, ~~字段2~~, ~~字段n~~ FROM ~~表名~~;
- 注意: 如果查询所有字段可以使用 * 来替代字段
- 去除重复 - DISTINCT
SELECT DISTINCT ~~字段1~~, ~~字段2~~, ~~字段n~~ FROM ~~表名~~;
- 计算列
- 一般可以使用四则运算来计算列的值
IFNULL(表达式1, 表达式2) -> 表达式1 - 字段 , 表达式2 - 替换值
- 起别名
AS
- 可省略
3.条件查询
- WHERE 字句后根条件
- 运算符
- < , > , <= , >= , = , <>
- BETWEEN…AND
- IN (集合)
- LIKE - 模糊查询
- _ ->单个任意字符
- % 多个任意字符
- IS NULL
- AND / &&
- OR / ||
- NOT / !