5 分页查询
当数据量较大时,一次性显示全体数据集不方便查看,此时可用分页语句让数据集分页展示
students表
id | class_id | name | gender | score |
---|
1 | 1 | 小白 | M | 87 |
2 | 2 | 小黄 | F | 90 |
3 | 1 | 小橘 | F | 72 |
4 | 2 | 小红 | M | 92 |
5 | 1 | 小粉 | M | 69 |
6 | 1 | 小蓝 | F | 83 |
7 | 2 | 小紫 | F | 94 |
8 | 2 | 小绿 | M | 61 |
9 | 1 | 小青 | F | 55 |
10 | 2 | 小黑 | M | 78 |
SELECT 列 FROM 数据集
LIMIT M OFFSET N;
M表示每页显示的行数,第1条数据对应的N=0,即N表示从第(N+1)个数据开始显示
如果想从第S页的第一行开始显示,则N=(S-1)*M
当(N+1)>总数据量时,会得到一个空的结果集
SELECT * FROM students
LIMIT 3 OFFSET 0;
id | class_id | name | gender | score |
---|
1 | 1 | 小白 | M | 87 |
2 | 2 | 小黄 | F | 90 |
3 | 1 | 小橘 | F | 72 |
SELECT * FROM students
LIMIT 3 OFFSET 3;
id | class_id | name | gender | score |
---|
4 | 2 | 小红 | M | 92 |
5 | 1 | 小粉 | M | 69 |
6 | 1 | 小蓝 | F | 83 |
SELECT * FROM students
LIMIT 3 OFFSET 6;
id | class_id | name | gender | score |
---|
7 | 2 | 小紫 | F | 94 |
8 | 2 | 小绿 | M | 61 |
9 | 1 | 小青 | F | 55 |
SELECT * FROM students
LIMIT 3 OFFSET 9;
id | class_id | name | gender | score |
---|
10 | 2 | 小黑 | M | 78 |
第4页只有1条数据,故只显示1条
NOTICE
- 当省略OFFSET时,默认为OFFSET 0
- “LIMIT M OFFSET N”可简写为“LIMIT M, N”,例如LIMIT 3 OFFSET 9 = LIMIT 3, 9
6 聚合查询
聚合函数用于对一组值执行计算并返回单个值,例如合计值、平均值、最大值、最小值等
SELECT COUNT(*) FROM students;
可以为查询值重命名,便于理解
SELECT COUNT(*) students_num FROM students;
6.1 搭配条件查询
聚合函数可以搭配WHERE条件,查询指定条件的特定值
SELECT COUNT(*) males_num FROM students WHERE gender = 'M';
SELECT MAX(score) females_max_score FROM students WHERE gender = 'F';
6.2 搭配分组查询
聚合查询与分组查询的搭配使用可以对数据集进行汇总和分析
SELECT class_id, COUNT(*) class_num FROM students GROUP BY class_id;
可以使用多个字段进行分组
SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender;
class_id | gender | num |
---|
1 | F | 3 |
1 | M | 2 |
2 | F | 2 |
2 | M | 3 |