( 36 ) “ 查询选修了 3 门以上课程的学生的学生号 ” ,正确的 SQL 语句是A) SELECT S# FROM SC GEOUPBY S# WHERE COUN ( * ) 〉 3B) SELECT S# FROM SC GEOUPBY S# HAVING COUN ( * ) 〉 3C) SELECT S# FROM SC ORDER S# HAVING COUN ( * ) 〉 3D) SELECT S# FROM SC ORDER S# WHERE COUN ( * ) 〉 3

题目

( 36 ) “ 查询选修了 3 门以上课程的学生的学生号 ” ,正确的 SQL 语句是

A) SELECT S# FROM SC GEOUPBY S# WHERE COUN ( * ) 〉 3

B) SELECT S# FROM SC GEOUPBY S# HAVING COUN ( * ) 〉 3

C) SELECT S# FROM SC ORDER S# HAVING COUN ( * ) 〉 3

D) SELECT S# FROM SC ORDER S# WHERE COUN ( * ) 〉 3


相似考题
参考答案和解析
正确答案:B
更多“( 36 ) “ 查询选修了 3 门以上课程的学生的学生号 ” ,正确的 SQL 语句是A) SELECT S# FROM SC GE ”相关问题
  • 第1题:

    要从选课表(学号、课程号、成绩)中查询选修了三门课程以上的学生学号,应使用的SELECT-SQL语句是

    A.SELECT学号FROM选课表WHERE COUNT(*)>=3

    B.SELECT学号FROM选课表HAVING COUNT(*)>=3

    C.SELECT学号FROM选课表GROUP BY学号HAVING COUNT(*)>=3

    D.SELECT学号FROM选课表GROUP BY学号WHERE COUNT(*)>=3


    正确答案:C
    解析:在选课表中,要查每个学生选修了多少门课程,就应该有按学号的分组语句,如果在查询中对分组后的记录还有一定的限制,就要使用HAVING短语。

  • 第2题:

    该题基于“学生-选课-课程”数据库中的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)。

  • 第3题:

    要从选课表(学号、课程号、成绩)中查询选修了3门课程以上的学生学号,应使用的SELECT语句是______。

    A.SELECT学号FROM选课表WHERECOUNT(*)>=3

    B.SELECT学号FROM选课表HAVING COUNT(*)>=3

    C.SELECT学号FROM选课表GROUPBY学号HAVINGCOUNT(*)>=3

    D.SELECT学号FROM选课表GROUP BY学号WHERE COUNT(*)>=3


    正确答案:C

  • 第4题:

    基于“学生-选课-课程”数据库中的如下三个关系:

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

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

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

    若要求“查询选修了5门以上课程的学生的学生号”,正确的SQL语句是( )。


    正确答案:C
    先用GroupBy子句按S#对记录分组,再用COUNT函数统计每组的记录数。HAVING短语指定选择组的条件,只有满足条件(元组数>5,表示此学生选修的课程超过5门)的组才会被选出来。故用SQL语句:SELECTS#FROMSCGROUPBYS#HAVINGCOUNT(*)>5。

  • 第5题:

    查询选修课程号为"101"课程得分最高的同学,正确的SQL语句是

    A.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND课程号="101”AND成绩>=ALL(SELECT成绩FROM选课)

    B.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号;选课.学号 AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")

    C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号二选课.学号 AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号="101")

    D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号="101" AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号 ="101")


    正确答案:D
    解析:本题所给出的四个选项中:
      选项A中的子查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是“101”课程得分大于等于所有科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询无结果,此选项错误。选项B中的查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于所有“101”科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询将查询出错误结果,此选项错误。
      选项C中的查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于任意“101”科目成绩的记录,此查询将杳询出错误结果,此选项错误。
      选项D符合题意,将查询出正确结果,故为正确答案。

  • 第6题:

    ( 33 )查询选修课程号为 “ 101 ” 课程得分最高的同学,正确的 SQL 语句是

    A) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 课程号 = "101" AND 成绩 >=ALL(SELECT 成绩 FROM 选课 )

    B) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 成绩 >=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )

    C) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 成绩 >=ANY(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )

    D) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号

    AND 课程号 = "101"AND 成绩 >=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 = "101" )


    正确答案:B