itgle.com

( 33 )查询选修课程号为 “ 101 ” 课程得分最高的同学,正确的 SQL 语句是A) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号AND 课程号 = "101" AND 成绩 >=ALL(SELECT 成绩 FROM 选课 )B) SELECT 学生 . 学号 , 姓名 FROM 学生 , 选课 WHERE 学生 . 学号 = 选课 . 学号AND 成绩 >=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 = "1

题目

( 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" )


相似考题
更多“( 33 )查询选修课程号为 “ 101 ” 课程得分最高的同学,正确的 SQL 语句是A) SELECT 学生 . 学号 , ”相关问题
  • 第1题:

    设有学生选课表 SC( 学号 , 课程号 , 成绩 ) , 用 SQL 检索同时选修课程号为 “ C1 ” 和 “ C5 ” 的学生的学号的正确命令是

    A) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 课程号 = ' C5 '

    B) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 课程号 =(SELECT 课程号 FROM SC WHERE课程号 = ' C5 ' )

    C) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 学号 =(SELECT 学号 FROM SC WHERE 课程号 = ' C5 ' )

    D) SELECT 学号 FROM SC WHERE 课程号 = ' C1 ' AND 学号 IN (SELECT 学号 FROM SC WHERE 课程号 = ' C5 ' )


    正确答案:D

  • 第2题:

    要查询选修了3门以上课程的学生的学号,则正确的SQL语句是:SELECT学号FROM选课( )。

    A.GROUPBY学号WHERECOUNT(*)>3

    B.ORDERBY学号WHERECOUNT(*)>3

    C.GROUPBY学号HAVINGCOUNT(*)>3

    D.ORDERBY学号HAVINGCOUNT(*)>3


    正确答案:C

  • 第3题:

    查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是 ______。

    A.SELECT 学号,课程号 FROM sc WHERE 成绩=""

    B.SELECT 学号,课程号 FROM sc WHERE 成绩=NULL

    C.SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL

    D.SELEC T学号,课程号 FROM sc WHERE 成绩


    正确答案:C
    解析:在SC表中成绩字段为数值型数据且初始为空值,本题要求查询出有选课记录,但没有考试成绩的学生的学号和课程号,只要成绩记录为空就说明没有考试成绩,即查询成绩字段为空值。查询空值时要使用IS NULL,而=NULL是无效的,因为空值不是一个确定的值,所以不能使用“=”这样的运算符进行比较,所以选项C的语法是正确的。

  • 第4题:

    假定学号的第3、4位为专业代码,要计算各专业学生选修课程号为“1O1”课程的平均成绩,正确的SQL语句是( )。

    A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”GROUP BY专业

    B.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”GROUP BY 1

    C.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”ORDER BY专业

    D.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”ORDER BY 1


    正确答案:B
    先用SQLSELECT中的GROUPBY把不同专业的学生进行分组,然后再利用AVG函数计算平均分。

  • 第5题:

    学生(学号(C,8),姓名(C,6),性别(C,2),出生日期(D))选课(学号(C,8),课程号(C,3),成绩(N,5,1)) 查询选修课程号为“007”课程得分最高的学生,正确的SQL语句是( )。

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

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

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

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


    正确答案:D
    所有选项都是通过嵌套查询来实现题目的要求,因此来看关键字:ALL要求子查询中的所有行结果为真,结果才为真;ANY只要子查询中有一行能使结果为真,则结果就为真。最高分应该为成绩>=ALL(…),要查询选课号为“007”的同学,所以内外查询中都要用到条件:课程号=”007”。

  • 第6题:

    设有以下3个表: 学生表STUD(学号,姓名,性别,年龄,专业) 课程表KC(课程号,课程名,选修课号,学分) 学生选课表SC(学号,课程号,成绩) 查询选修了课程名为“数据结构”的学生的姓名的SELECT语句是______。

    A.SELECT 姓名 FROM STUD; WHERE学号SELECT学号FROM SC WHERE 课程号IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”)

    B.SELECT姓名FROM STUD; WHERE学号IN(SELECT学号FROM SC WHERE 课程号UNION; (SELECT 课程号 FROM KC WHERE 课程名=“数据结构”))

    C.SELECT 姓名 FROM STUD; WHERESELECT课程号FROMKCWHERE课程名=“数据结构”

    D.SELECT姓名FROM STUD; WHERE 学号 IN(SELECT 学号 FROM SC WHERE 课程号 IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”))


    正确答案:D
    解析:要实现本题的查询要求,需使用嵌套查询。嵌套查询又称为子查询,它可以把一个SELECT-FROM-WHERE查询块嵌入在另一个查询块中。嵌套查询是由内向外进行的。在嵌套查询中,常用谓词IN引导子查询。选项A、B、C的语句不符合嵌套查询的语法结构,只有选项D正确。

  • 第7题:

    假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为"101"课程的平均成绩,正确的SQL语句是

    A.SELECT 专业 AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE 课程号="101"GROUP BY专业

    B.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FROM选课 WHERE课程号="101"GROUP BY 1

    C.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FROM选课 WHERE课程号="101"ORDER BY专业

    D.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号="101"ORDER BY 1


    正确答案:B
    解析:本题中所给出的四个选项中,选项A与选项C的错误很明显,因为分组短语GROUP BY后面所跟的“专业”字段,在查询的结果中并不存在,所以这两个选项不予考虑。而选项D则有一定的迷惑性,但题目仔细观察可以看出,其Select短语后面所跟随的“专业”字段列表在“选课”表中不存在,所以为错误选项。故选项 B为正确答案。

  • 第8题:

    查询同时选修课程号为Cl和C5课程的学生的学号,正确的命令是( )。

    A.SELECT学号FROM score sc WHERE课程号="Cl"AND学号IN (SELECT学号FROM score sc WHERE课程号="C5")

    B.SELECT学号FROM score sc WHERE课程号="Cl"AND学号= (SELECT学号FROM score sc WHERE课程号="C5")

    C.SELECT学号FROM score sc WHERE课程号="Cl"AND课程号="C5"

    D.SELECT学号FROM score sc WHERE课程号="Cl"OR课题号="C5"


    正确答案:A
    A【解析】查询同时选修课程号为Cl和C5课程的学生的学号,OR表示的是或者,所以D错误;其中学号和课程号不在一个表中所以要进行嵌套查询,而不能使用“学号=(…)”而要用IN连接,所以答案为A。

  • 第9题:

    查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 SQL 语句是

    A)SELECT 学号 , 课程号 FROM sc WHERE 成绩 = ""

    B)SELECT 学号 , 课程号 FROM sc WHERE 成绩 = NULL

    C)SELECT 学号 , 课程号 FROM sc WHERE 成绩 IS NULL

    D)SELECT 学号 , 课程号 FROM sc WHERE 成绩


    正确答案:C

  • 第10题:

    要在学生选课表中查询选修三门以上课程的学生的学号,则可以使用的SQL语句是“SELECT 学号 FROM 学生选课 GROUP BY ()COUNT(*)>3”。

    • A、课程号 WHERE
    • B、学号 WHERE
    • C、课程号 HAVING
    • D、学号 HAVING

    正确答案:D

  • 第11题:

    单选题
    要在学生选课表中查询选修三门以上课程的学生的学号,则可以使用的SQL语句是“SELECT 学号 FROM 学生选课 GROUP BY ()COUNT(*)>3”。
    A

    课程号 WHERE

    B

    学号 WHERE

    C

    课程号 HAVING

    D

    学号 HAVING


    正确答案: D
    解析: 暂无解析

  • 第12题:

    问答题
    假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:    学生(学号,姓名,年龄,性别)    课程(课程号,课程名,任课教师) 成绩(学号,课程号,成绩) (1)如何在SQL Server上创建这三张表; (2)查询刘峰教师所授课程号,课程名; (3)查询年龄大于20岁的所有男同学的学号、姓名; (4)查询至少选修了两门课程(含两门)的学生学号; (5)查询王文芳同学选修的所有课程的课程号; (6)查询王文芳同学不学的课程的课程号; (7)查询所有上刘峰老师课程的学生学号; (8)查询所有选修“数据库原理”的学生的学号; (9)向学生表中插入一条记录(’2003001’,’吴红’,21,’女’);(1表示女,0表示男) (10)删除三张表中所有学号为20020001的学生信息; (11)把学号为20030002的学生的年龄改为22岁。

    正确答案: 1.学生表:
    Create table 学生表 (   
    学号 char (8) primary Key,   
    姓名 char(8),   
    年龄 int,   
    性别 bit

       
    课程表:
    Create table 课程表 (   
    课程号 char (7) primary Key, 
    课程名 char(20),   
    任课教师 char (8)

       
    成绩表:
    Create table 成绩表 (   
    学号 char (8),  
    课程号 char (7),   
    成绩 Numeric (4,2)

    2.Select课程号, 课程名 from课程表 where任课教师=’ 刘峰’
    3.Select 学号, 姓名 from 学生表 where 性别=1 and 年龄>20
    4.select 学号 from 成绩   group by 学号   having count(学号)>=2 
    5.Select 课程号 from 成绩表, 学生表 
      Where学生表.姓名=’ 王文芳’ and 学生表.学号=成绩表.学号
    6.select 课程号 from 成绩表 
      where 课程号 not in (select 课程号 from 学生表,成绩表 where 学生表.姓名='王文芳' and 学生表.学号=成绩表.学号)
    7.Select 学号 from 成绩表,课程表,学生表 
      Where 课程表.任课教师='刘世峰' and 课程表.课程号=成绩表.课程号 and 课程表.学号=成绩表.学号
    8.Select 学号 from 成绩表,课程表 
      where 课程表.课程名='数据库技术' and 课程表.课程号=成绩表.课程号
    9.insert into 学生表 values ('2003001','吴红','21',1) 
    10.Delete from学生表 where 学号=’ >20020001’   
    Delete from学生表 where 学号=’ 20020001’ 
    11. Update 学生表 set 年龄=’22’ where学号=’20030002’
    解析: 暂无解析

  • 第13题:

    检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的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
    解析:本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。

  • 第14题:

    要从选课表(学号、课程号、成绩)中查询选修了三门课程以上的学生学号,应使用的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短语。

  • 第15题:

    查询选修C2课程号的学生姓名,下列SQL语句中错误的是 ______。

    A.SELECT 姓名 FROM S WHERE EXISTS (SELECT*FROM SC WHERE 学号=S.学号 AND 课程号='C2')

    B.SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号='C2')

    C.SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号='C2'

    D.SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号='C2')


    正确答案:D
    解析:要求查询选修C2课程号的学生的姓名,姓名字段在S表中,而课程号在SC表中,可知查询的结果来自一张表,而条件来自另一张表,所以这里可以用简单的连接查询或者用嵌套查询。
      选项A使用谓语EXISTS进行查询,EXISTS或NOT EXISTS是用来检查在子查洵中是否有结果返回(即存在元组或不存在元组)。选项A先查询出SC表中选修了C2课程的所有信息,并指定SC表和S表通过学号公共字段建立联系,接着查询出姓名字段所对应的值,这种查询是可以达到目的的。
      选项B是一个嵌套查询,首先在SC表中查出选修了C2课程的学生的学号,接着找出这些学号在S表中所对应的学生的姓名,从而查询出选修了C2课程的学生的姓名。
      选项C是一个连接查询,SC表和S表首先通过学号字段建立连接,再找出选修了C2课程的学生的姓名。
      选项D中先找出选修了C2课程的学生的学号,因为选修C2课程的学生可能不止一个,因此不能直接用“=”号,而应该用“IN",IN相当于集合运算符∈,所以选项D是错误的。

  • 第16题:

    现有某高校的选修课记录(SC):学号、姓名、课程名称、成绩,要查询没有选修课成绩的学生和课程,正确的SQL语句是( )。

    A. SELECT学号,课程号FROM sc WHERE成绩=””

    B. SELECT学号,课程号FROM sc WHERE成绩=NULL

    C. SELECT学号,课程号FROM SC WHERE成绩IS NULL

    D. SELECT学号,课程号FROM SC WHERE成绩


    正确答案:C
    利用空值查询,查询空值时要使用“Is NULL”,而=“”、=NULL都是无效的,因为空值是一个不确定的值,所以不能用“=”进行比较。

  • 第17题:

    查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的sQL语句是( )。

    A.SELECT学号,课程号FROM SC WHERE 成绩

    B.SELECT学号,课程号FROM SC WHERE 成绩 =NULL

    C.SELECT学号,课程号FROM SC WHERE成绩ls NULL

    D.SELECT学号课程号FROM SC WHERE成绩


    正确答案:C
    C。【解析】查询空值时要使用ISNULL,而“=NULL”是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。

  • 第18题:

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

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

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

    C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩>:=:A11(SELECT成绩FROM选课 WHERE课程号=”101”)

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


    正确答案:D
    本题采用嵌套查询。其中,ALL表示所有的结果。

  • 第19题:

    查询选修课程号为"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符合题意,将查询出正确结果,故为正确答案。

  • 第20题:

    ( 32 ) 假定学号的第 3 、 4 位为专业代码 。 要计算各专业学生选修课程号为 “ 101 ” 课程的平均成绩 , 正确的 SQL 语句是

    A) SELECT 专业 AS SUBS( 学号 ,3,2), 平均分 AS AVG( 成绩 ) FROM 选课 WHERE 课程号 = "101" GROUP BY 专业

    B) SELECT SUBS( 学号 ,3,2) AS 专业 , AVG( 成绩 ) AS 平均分 FROM 选课 WHERE 课程号 = "101" GROUP BY 1

    C) SELECT SUBS( 学号 ,3,2) AS 专业 , AVG( 成绩 ) AS 平均分 FROM 选课 WHERE 课程号 = "101" ORDER BY 专业

    D) SELECT 专业 AS SUBS( 学号 ,3,2), 平均分 AS AVG( 成绩 ) FROM 选课 WHERE 课程号 = "101" ORDER BY 1


    正确答案:B

  • 第21题:

    查询选修 C2 课程号的学生姓名,下列 SQL 语句中错误是

    A)SELECT 姓名 FROM S WHERE EXISTS (SELECT * FROM SC WHERE 学号 =S. 学号 AND 课程号='C2')

    B)SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号 ='C2')

    C)SELECT 姓名 FROM S JOIN SC ON S. 学号 =SC. 学号 WHERE 课程号 ='C2'

    D)SELECT 姓名 FROM S WHERE 学号 = (SELECT 学号 FROM SC WHERE 课程号 ='C2')


    正确答案:D

  • 第22题:

    假定学生关系是S(SNO,SNAME,SEX,AGE),其属性是学号,姓名,性别,年龄;课程关系是C(CNO,CNAME),属性是课程号,课程名;学生选课关系是SC(SNO,CNO,GRADE),属性是学号,课程号,成绩。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系有()、()、(),SQL语句为:SELECT SNAME FROM WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND();查询所有课程都及格的学生学号,姓名,SQL语句为:SELECT SNO, SNAME FROM()WHERE() (SELECT * FROM SC WHERE S.SNO=SC.SNO AND ())。


    正确答案:s;sc;c;CNAME=‘computer’and SEX=‘女’;S;NOT EXISTS;GRADE<60

  • 第23题:

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

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=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课程号=101AND成绩>=(SELECT成绩FROM选课WHERE课程号=101)


    正确答案: A
    解析:
    ALL表示所有子查询中的所有行都使结果为真时,结果才为真;而ANY表示子查询中有一行能使结果为真,则结果就为真,要求查询选修课程号为“101”的课程得分最高的同学,应用条件短语:成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")。