专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

mysql 查询排序规则,有没有一些附带答案和练习数据的mysql练习题_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 15:32:01       共计:3586 浏览
mysql 查询排序规则,有没有一些附带答案和练习数据的mysql练习题?

最近刚好在头条写了三篇关于MySQL的SQL语法实战文章,这里大概列举其中部分练习题,文末附全部文章链接,有兴趣的可以跳转阅读。

演示数据

我们将以下面演示数据为例开展相关SQL语法练习,演示数据涉及学生信息表、教师信息表、课程信息表、成绩信息表,具体建表语句及数据如下:

学生信息表

我们向学生信息表中插入如下4条数据:

教师信息表

我们向教师信息表中插入如下3条数据:

课程信息表

我们向课程信息表中插入如下3条数据:

成绩信息表

我们向成绩信息表中插入如下11条数据:

通过上述SQL我们可以创建 学生、教师、课程、成绩信息表,并插入样例数据,产生如下演示数据:练习如下

1 查询所有同学的学生编号、学生姓名、选课总数、所有课程的平均成绩。

上述SQL执行结果如下:

2 查询平均成绩高于60 分的学生编号和学生姓名和平均成绩。

上述SQL执行结果如下:

在该例子中用到了 any_value 函数,该函数有什么作用呢,如下:

自 MySQL5.7版本之后,sql_mode 中 only_full_group_by 模式默认为打开状态。only_full_group_by 就是确定 select target list 中的所有字段都是明确语义,即在此模式下 select target list 中的字段 要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于 group by 中的表达式的值,除此之外都将触发异常。因此,MySQL提供了any_value 函数来抑制 only_full_group_by 值被拒绝,any_value 会选择被分到同一组的数据里第一条数据的指定字段值作为返回数据。

使用内连接,同样可以实现查询平均成绩高于60 分的学生编号和学生姓名和平均成绩,如下。

3 获取各课程的平均成绩,降序排列,若平均成绩相同时,按课程编号升序排列。

上述SQL执行结果如下:

4 获取数学(Math)课程成绩不低于90分的学生学号、姓名班级、成绩信息。

上述SQL执行结果如下:

5 获取语文(Chinese)课程成绩不超过60分的学生学号、姓名班级、成绩信息,按分数降序排列的学生信息。

上述SQL执行结果如下:

6 获取班级的数学(Math)课程平均成绩大于90分的班级。

上述SQL执行结果如下:

7 获取没有缺考的学生的学号、姓名、班级信息。

上述SQL执行结果如下:

8 获取所有学生的课程及分数情况(存在学生没成绩,没选课的情况)

相关阅读:

学以致用,语法基础实战: https://www.toutiao.com/i6743064663044407815/

学以致用,语法进阶实战: https://www.toutiao.com/i6743066018496659981/

学以致用,语法强化实战: https://www.toutiao.com/i6743141851047395854/

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:如何快速实现高并发短文检索_数据库 | ·下一条:mysql查询语句优化,MySQL频繁执行update语句会卡死表_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有