根据以下三个表,按题目要求写出相应的SQL操作命令。

学生表:学号CHAR(8),姓名CHAR(12),性别CHAR(2),出生日期DATE,班级CHAR(8),院系CHAR(8);

课程表:课程编号CHAR(4),课程名称CHAR(10),开课院系CHAR(8);

选修成绩表:学号CHAR(8),课程编号CHAR(4),成绩INT。

(1)查询每门课程的课程名称和最高分。

(2)查询选修成绩低于60分学生的学号和姓名。

(3)统计选修人数不超过5的课程的课程名称、开课院系和选修人数,并按选修人数排序。

(4)查询选修了不少于3门课程的学生的学号、姓名和平均成绩,并按平均成绩降序排序。

【正确答案】

(1)SELECT课程名称,MAX(成绩)AS最高分FROM课程表,选修成绩表WHERE课程表.课程编号=选修成绩表.课程编号GROUP BY课程名称

(2)SELECT学生表.学号,姓名FROM学生表,选修成绩表WHERE学生表.学号=选修成绩表.学号AND成绩<60;

(3)SELECT课程名称,开课院系,COUNT(学号)AS选修人数FROM选修成绩表,课程表WHERE课程表.课程编号=选修成绩表.课程编号GROUP BY课程名称HAVING COUNT(学号)<=5 ORDER BY选修人数;

(4)SELECT学生表.学号,姓名,AVG(成绩)AS平均分FROM学生表,选修成绩表WHERE学生表.学号=选修成绩表.学号GROUP BY选修成绩表.学号HAVINGCOUNT(*)>=3 ORDER BY平均分DESC;

【答案解析】