mysql队列怎么使用 mysql技巧( 三 )


查询每门课的平均成绩 。
查询 score 表中至少有 2 名学生选修,并以 3 开头的课程的平均分数 。
分析表发现,至少有 2 名学生选修的课程是 3-105 、3-245 、6-166,以 3 开头的课程是 3-105 、3-245 。也就是说 , 我们要查询所有 3-105 和 3-245 的 degree 平均分 。
查询所有学生的 name,以及该学生在 score 表中对应的 c_no 和 degree。
通过分析可以发现,只要把 score 表中的 s_no 字段值替换成 student 表中对应的 name 字段值就可以了 , 如何做呢?
查询所有学生的 no 、课程名称 ( course 表中的 name ) 和成绩 ( score 表中的 degree ) 列 。
只有 score 关联学生的 no,因此只要查询 score 表,就能找出所有和学生相关的 no 和 degree :
然后查询 course 表:
只要把 score 表中的 c_no 替换成 course 表中对应的 name 字段值就可以了 。
查询所有学生的 name 、课程名 ( course 表中的 name ) 和 degree。
只有 score 表中关联学生的学号和课堂号 , 我们只要围绕着 score 这张表查询就好了 。
只要把 s_no 和 c_no 替换成 student 和 srouse 表中对应的 name 字段值就好了 。
首先把 s_no 替换成 student 表中的 name 字段:
再把 c_no 替换成 course 表中的 name 字段:
查询 95031 班学生每门课程的平均成绩 。
在 score 表中根据 student 表的学生编号筛选出学生的课堂号和成绩:
这时只要将 c_no 分组一下就能得出 95031 班学生每门课的平均成绩:
查询在 3-105 课程中,所有成绩高于 109 号同学的记录 。
首先筛选出课堂号为 3-105,在找出所有成绩高于 109 号同学的的行 。
查询所有成绩高于 109 号同学的 3-105 课程成绩记录 。
查询所有和 101 、108 号学生同年出生的 no 、name 、birthday 列 。
查询 '张旭' 教师任课的学生成绩表 。
首先找到教师编号:
通过 sourse 表找到该教师课程号:
通过筛选出的课程号查询成绩表:
查询某选修课程多于5个同学的教师姓名 。
首先在 teacher 表中 , 根据 no 字段来判断该教师的同一门课程是否有至少5名学员选修:
查看和教师编号有有关的表的信息:
我们已经找到和教师编号有关的字段就在 course 表中,但是还无法知道哪门课程至少有5名学生选修 , 所以还需要根据 score 表来查询:
根据筛选出来的课程号,找出在某课程中,拥有至少5名学员的教师编号:
在 teacher 表中,根据筛选出来的教师编号找到教师姓名:
查询 “计算机系” 课程的成绩表 。
思路是,先找出 course 表中所有 计算机系 课程的编号,然后根据这个编号查询 score 表 。
查询 计算机系 与 电子工程系 中的不同职称的教师 。
查询课程 3-105 且成绩 至少 高于 3-245 的 score 表 。
查询课程 3-105 且成绩高于 3-245 的 score 表 。
查询某课程成绩比该课程平均成绩低的 score 表 。
查询所有任课 ( 在 course 表里有课程 ) 教师的 name 和 department。
查询 student 表中至少有 2 名男生的 class。
查询 student 表中不姓 "王" 的同学记录 。
查询 student 表中每个学生的姓名和年龄 。
查询 student 表中最大和最小的 birthday 值 。
以 class 和 birthday 从大到小的顺序查询 student 表 。
查询 "男" 教师及其所上的课程 。
查询最高分同学的 score 表 。
查询和 "李军" 同性别的所有同学 name。
查询和 "李军" 同性别且同班的同学 name。
查询所有选修 "计算机导论" 课程的 "男" 同学成绩表 。
需要的 "计算机导论" 和性别为 "男" 的编号可以在 course 和 student 表中找到 。

推荐阅读