一、分组查询
语法: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)*每页显示的数据