SQL分组查询和分页查询(代码+运行结果+讲解)

导读:本篇文章讲解 SQL分组查询和分页查询[代码+运行结果+讲解],希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

分组查询和分页查询也是开发中用到的对数据库表的查询操作。下述代码都是通过stu表,内容如下图:

SQL分组查询和分页查询(代码+运行结果+讲解)

一、分组查询

1.查询男同学和女同学各自的数学平均分

SELECT sex,AVG(math) FROM stu GROUP BY sex;

运行结果: 

SQL分组查询和分页查询(代码+运行结果+讲解)

2.查询男同学和女同学各自的数学平均分,以及各自人数

SELECT sex,AVG(math),COUNT(*) FROM stu GROUP BY sex;

运行结果:

SQL分组查询和分页查询(代码+运行结果+讲解)

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

3.查询男同学和女同学各自的数学平均分,以及各自人数(要求:分数低于70分的不参与分组)

SELECT sex,AVG(math),COUNT(*) FROM stu WHERE math>60 GROUP BY sex;

运行结果: 

SQL分组查询和分页查询(代码+运行结果+讲解)

注意:条件必须写在分组前

4.查询男同学和女同学各自的数学平均分,以及各自人数(要求:分数低于70分的不参与分组,分组之后人数大于等于2)

SELECT sex,AVG(math),COUNT(*) FROM stu WHERE math>60 GROUP BY sex HAVING COUNT(*)>=2;

运行结果: 

SQL分组查询和分页查询(代码+运行结果+讲解)

WHERE 和 HAVING区别

1.执行时机不一样:where 分组前限定查询数据,having 分组后过滤数据

2.可判断条件不一样:where不能对聚合函数进行判断,having 可以。

执行顺序: where>聚合函数>having

二、分页查询

1. 每页显示2条数据,查询第1页数据

SELECT * FROM stu LIMIT 0,2;

运行结果:

SQL分组查询和分页查询(代码+运行结果+讲解)

2..每页显示2条数据,查询第2页数据

SELECT * FROM stu LIMIT 2,2;

运行结果: 

SQL分组查询和分页查询(代码+运行结果+讲解)

3.每页显示2条数据,查询第3页数据 

SELECT * FROM stu LIMIT 4,2;

运行结果:

SQL分组查询和分页查询(代码+运行结果+讲解)

不难看出起始索引的规律如下:     

起始索引计算公式=(当前页码-1)*每页显示条数 

等实际开发时会用到,当前端点击某个页码时在数据库中调用这条语句把起始索引值传进去进行查询相应页的数据在穿给前端进行展示。

总结

分组查询GROUP BY 分页查询LIMIT(开始索引 查询条目数)。起始索引公式计较重要,也比较好记,最好记住。分组一般是统计数据时会用到。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114662.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!