MySQL分组查询与分页查询

一、分组查询
语法:group by 分组字段;
直接上例子

#按照性别分组,查询男女平均分
SELECT sex,AVG(math) FROM student GROUP BY sex;

结果如下:
在这里插入图片描述

#按照性别分组,分别查询男女平均分、人数
SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;

结果如下:
在这里插入图片描述注意:分组查询时要么加分组字段要么加聚合函数,加其他字段不会报错,但是是没意义的

分组前后对条件进行限定,HAVING语句的使用。

#分组前对条件做限定
#按照性别分组,分别查询男女平均分、人数。分数低于70不参与分组
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex;
#分组后对条件做限定 HAVING
#HAVING是在分组后进行限定
#按照性别分组,分别查询男女平均分、人数。分数低于70不参与分组。分组后分数要大于2人
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(ID)>2;
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(SEX)>2; #结果与上面一致
#COUNT(id)的别名为人数
SELECT sex,AVG(math),COUNT(id) 人数 FROM student WHERE math>70 GROUP BY sex HAVING COUNT(人数)>2; #结果与上面一致

二、分页查询
当数据表中数据很多时,查询的时候可以做分页操作,让查询结果分页显示,比如浏览器会查询的数据有10000条,浏览器显示的时候会做分页显示,每页显示10条数据,当用户点击浏览器的第2页按钮时,浏览器会像服务器请求第二页的数据,这时服务器利用分页操作向数据库请求第二页的数据即可。
语法:limit 开始的索引,每页查询的条数;

SELECT * FROM student LIMIT 0,3; #从第0条开始,显示3条数据
SELECT * FROM student LIMIT 3,3; #从第3条开始,显示3条数据
SELECT * FROM student LIMIT 6,3; #从第3条开始,显示3条数据
#开始的索引号=(当前页码-1)*每页显示的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值