3.mysql数据库
3.13 练习
数据库数据:
1)查询男生、女生的人数;
2)查询姓“张”的学生名单;
3)课程平均分从高到低显示
4)查询有课程成绩小于60分的同学的学号、姓名;
5)查询至少有一门课与学号为1的同学所学课程相同的同学的学号和姓名;
6)查询出只选修了一门课程的全部学生的学号和姓名;
7)查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;
8)查询课程编号“2”的成绩比课程编号“1”课程低的所有同学的学号、姓名;
(1)把所同学的学生id和课程1的成绩查出来
(2)把所同学的学生id和课程2的成绩查出来
(3)把查出来的两张表用student_id连接起来
(4)加判断,并且只取学生id
(5)在学生表中,根据已经查到的学生id,获取学生id和学生姓名
最后一步也可以使用连表实现,将第4步得到的表和学生表连表,再获取学生信息
9)查询“生物”课程比“物理”课程成绩高的所有学生的学号;
(1)查生物课成绩
(2)查物理课成绩
(3)连接上面两表on学生id,并判断ns>nw,查出学生id
10)查询平均成绩大于60分的同学的学号和平均成绩;
11)查询所有同学的学号、姓名、选课数、总成绩;
12)查询姓“李”的老师的个数;
13)查询没学过“张磊老师”课的同学的学号、姓名;
14)查询学过“1”并且也学过编号“2”课程的同学的学号、姓名;
(1)查询学过课程1的学生的id
(2)查询学过课程2的学生的id
(3)两表内连接on学生id,剩下的学生id就是两科都学过的学生id
(4)第三步获得的表作为字表被学生表查询,获取学生id和学生姓名
15)查询学过“李平老师”所教的所有课的同学的学号、姓名;
(1)找到“李平老师”所教课程
(2)找到学过“李平老师”所教课程的所有同学
(3)查询“李平老师”交了几门课
(4)对第2步得到的表进行分组并计数,计数结果和第3步查询结果相同,说明该学生学了“李平老师”的所有课。
(5)从第4步获取学号,通过子查询获取学生姓名