MySQL50-8-第26-30题
本文中介绍的是第26-30题目,主要涉及的知识点是:
- 分组之后count统计人数
- 模糊匹配
- 同一个表的自连接
- having的使用
5个题目是:
- 查询每门课被选修的学生数
- 查询出只有两门课程的全部学生的学号和姓名
- 查询男女生人数
- 查询名字中含有
风
字的学生信息 - 查询同名同性的学生名单,并统计同名人数
题目26
题目需求
查询每门课被选修的学生数
分析过程
题目想求解的是每门课有多少人选修,挺简单的
SQL实现
1 | select |
题目27
题目需求
查询出只有两门课程的全部学生的学号和姓名
分析过程
课程:Score,通过c_id来决定课程数
学生:Student
SQL实现
having条件是分组之后在执行的,where语句是分组前先执行的
1 | select |
题目28
题目需求
查询男女生人数
分析过程
直接统计Student
表中的性别s_sex
人数
SQL实现
先看看数据:男女人数都是4
1 | -- 自己的方法 |
题目29
题目需求
查询名字中含有风
字的学生信息
分析过程
名字中带有风,我们使用模糊匹配%;使用的表是Student
SQL实现
先看看哪些同学的名字中有风
1 | -- 模糊匹配:我们在两边都加上了%,考虑的是姓或者名字含有风,虽然风姓很少见 |
题目30
题目需求
查询同名同性的学生名单,并统计同名人数
分析过程
从Student
表中找出同名且同性的学生人数
SQL实现
1、先看看班级的学生信息
现有的数据中没有同名的学生,但是当班级人数增多的时候很有可能在班级上出现同名的学生
2、假设有同名同性的学生
1 | select |