问题 单项选择题

19~25题所用到的数据如表1和表2所示。

表1 课程表(KC.dbf)

课程号课程名学分
0001C程序设计5
0002数据结构6
0003计算机基础4
0004数据库应用基础4

表2 选课表(SKB.dbf)

学号课程号成绩
980001000198
980002000276
980001000250
980002000369
980003000175
980003000368
980004000155
980005000176
980004000265
9800030002J30
980003000486
980002000477

要列出所有课程的课程号、课程名和最高分,下列语句中正确的是______。

A.SELECT课程号,课程名,最高分FROM KC,SKB

B.SELECT KC.课程号,KC.课程名,SKB.最高分;
FROM KC,SKB WHERE KC.课程号=SKB.课程号

C.SELECT KC.课程号,KC.课程名,SKB.最高分;
FROM KC INNER JOIN SKB;
  ON KC.课程号=SKB.课程号;
 GROUP BY SKB.课程号

D.SELECT KC.课程号,KC.课程名,MAX(SKB.成绩) AS 最高分;
  FROM EC INNER JOIN SKB;
  ON KC.课程号=SKB.课程号;
  GROUP BY SKB.课程号

答案

参考答案:D

解析:

[分析]: 由于课程名字段和成绩字段分属于两个表,因此必须在两个表之间进行连接,显然可按照课程号相等进行连接。要求出每门课程的最高分,应用GROUP BY子句对课程号进行分组,并通过MAX()函数求出每个组的最高分。

单项选择题 配伍题
单项选择题