早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

该题基于“学生-选课-课程”数据库中的3个关系。学生基本信息S(S#,SNAME, SEX, AGE)选课信息SC(S#,

题目

该题基于“学生-选课-课程”数据库中的3个关系。

学生基本信息S(S#,SNAME, SEX, AGE)

选课信息SC(S#, C#, GRADE)

课程信息C(C#, CNAME, TEACHER)

若要求“查询选修了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
解析: SELECT语句的一般格式是:
SELECT [ALL|DISTICT]目标列表达式>[,目标列表达式>]…
FROM基本表(或视图)>[,基本表(或视图)>]…
[WHERE条件表达式>)
[GROUP BY列名1>[HAVING内部函数表达式>]]
[ORDER BY列名>[ASC|DESC]];
  整个语句的含义是:根据WHERE子句的条件表达式,从基本裹或视图找出满足条件的元组,按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有ORDER子句,则结果表要根据指定的列名1按升序或降序掉序。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组。通常在每组中给出作用集函数,分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才予以输出。
  根据题童,先用GROUP BY于句按S#进行分组,再用集函数 COUNT对每一组计数。HAVING短语的条件是学生选修的课超过3门的组才会被选出来。所以正确的是选项B)。