问题 单项选择题

“学生—选课—课程”数据库中的三个关系:

S(S#, SNAME, SEX, AGE, DEPT)

SC(S#, C#, GRADE)

C(C#, CNAME, TEACHER)

其中S的主码是S#, SC的主码是(S#, C#),C的主码是C#。

查找选修了3门以上课程的学生的学号,正确的SQL语句是()。

A.SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)>3

B.SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>3

C.SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)>3

D.SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)>3

答案

参考答案:B

解析:

先用GROUP BY子句按S#进行分组,再用聚集函数COUNT对每一个,分组计数。HAVING短语指定选择组的条件,只有满足条件(元组个数>3,表示此学生选修的课超过3门)的组才会被选出来。

单项选择题 B2型题
判断题