问题 单项选择题

(31)到(35)题中使用如下数据表。
“学生”表:学号C (8),姓名C (8),性别C (2),系名 (6)
“课程”表:课程编号C (4),课程名称C (12),开课系名C (10)
“成绩”表:学号C(8),课程编号C(4),成绩N (6,2)

检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。

A.SELECT课程.课程名称,学生.姓名,MAX(成绩)AS最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUPBY 课程编号

B.SELECT 课程.课程名称,学生.姓名,MAX(成绩)AS最高分; FROM 成绩,课程,学生; WHERE 成绩.程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUPBY 课程.课程编号

C.SELECT 课程.课程名称,学生.姓名,MAX(成绩)AS最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号

D.SELECT 课程.课程名称,学生.姓名,MAX(成绩)AS最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDERBY 课程.课程编号

答案

参考答案:B

解析: 本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。

多选题
判断题