问题 单项选择题

下列各题中使用如下数据袁。
“学生”表:学号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成绩.学号=学生.学号
GROUP BY课程编号

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

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

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

答案

参考答案:B

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

单项选择题
单项选择题