有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90)A、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE成绩>90)B、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)C、SELECT姓名FROM学生表WHERE学号EXISTS;(SELECT学号FROM成绩表WHE

题目

有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90)

  • A、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE成绩>90)
  • B、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)
  • C、SELECT姓名FROM学生表WHERE学号EXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)
  • D、SELECT姓名FROM学生表WHERE学号=;(SELECT学号FROM成绩表WHERE成绩>90)

相似考题
更多“有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90)A、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE成绩>90)B、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)C、SELECT姓名FROM学生表WHERE学号EXISTS;(SELECT学号FROM成绩表WHER”相关问题
  • 第1题:

    查询选修课程号为“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”科目成绩的记录,此查询将查询出错误的结果,此选项错误。

  • 第2题:

    若要查询选修课(学号、课程号、成绩)成绩在80分以上的女生的姓名,应使用的SELECT语句是 ______。

    A.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别=“女”.AND.成绩>=80

    B.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别=“女”.OR.成绩>=80

    C.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别=“女”.OR.成绩>=80

    D. SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别=“女”.AND.成绩>=80


    正确答案:D
    解析:本查询是在学生表和选课表之间进行的,在语句中应有表的连接条件和记录的筛选条件,在4个选项中的表连接条件都是相同的,也是正确的,不同之处是连接条件和筛选条件之间的逻辑运算符的使用,在语句中只要使用了逻辑运算符OR就都不符合题意要求,正确答案应为选项D。

  • 第3题:

    学生(学号(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”。

  • 第4题:

    假设所有学生都已选课,所有的选课成绩都已确定。检索所有选课成绩都在90分以上(含)的学生信息,正确的SQL命令是( )。

    A.SELECT*FROM学生WHERE学号IN(SELECT学号FROM选课WHERE成绩>=90)

    B.SELECT*FROM学生WHERE学号NOT IN(SELECT学号FROM选课 WHERE成绩<90)

    C.SELECT*FROM学生WHERE学号!=ANY(SELECT学号FROM选课 WHERE成绩<90)

    D.SELECT*FROM学生WHERE学号=ANY(SELECT学号FROM选课 WHERE成绩>=90)


    正确答案:B
    解析:in表示包含关系,any表示只要有一条数据满足条件,整个条件成立。

  • 第5题:

    设有以下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正确。

  • 第6题:

    检索还未确定成绩的学生选课信息,正确的SQL命令是( )。

    A.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学=选课.学号AND选课.成绩IS NULL

    B.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学号=选课.学号AND选课.成绩=NULL

    C.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩IS NULL

    D.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩=NULL


    正确答案:C
    C。【解析】INNERJOINON表示内链接,内链接是通过比较源表间共享的列的值从多个源表检索行的操作。内链接排除来自不具有与其他源表中的行匹配的行的源表的行。

  • 第7题:

    ( 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

  • 第8题:

    查询选修 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

  • 第9题:

    使用SQL语句查询学生成绩是否为空的语句是:SELECT 学号 FROM 成绩表 WHERE 成绩 = ""。


    正确答案:错误

  • 第10题:

    已知“成绩”表中包含“学号”“课程编号”和“成绩”3个字段,从成绩表中挑选不及格的学生的学号,下面语句正确的是()。

    • A、Select 学号 from 成绩 where 成绩<60
    • B、Select 课程编号 from 成绩 where 成绩<60
    • C、Select 学号 from 成绩 where<60
    • D、Select 课程编号 from 成绩 where<60

    正确答案:A

  • 第11题:

    单选题
    设有S(学号,姓名,性别)和SC(学号,课程号,成绩)两个表,如下SQL语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是(  )。
    A

    SELECT学号,姓名,性别FROM S WHERE EXISTS(
    SELECT * FROM SC WHERE SC.学号=S.学号AND成绩<=85)

    B

    SELECT学号,姓名,性别FROM S WHERE NOT EXISTS(
    SELECT * FROM SC WHERE SC.学号=S.学号AND成绩<=85)

    C

    SELECT学号,姓名,性别 FROM S WHERE EXISTS(
    SELECT * FROM SC WHERE SC.学号=S.学号AND成绩>85)

    D

    SELECT学号,姓名,性别FROM S WHERE NOT EXISTS(
    SELECT*FROM SC WHERE SC.学号=S.学号AND成绩<85)


    正确答案: A
    解析:
    EXISTS或NOT EXISTS用来检查在子查询中是否有结果返回。查询成绩高于或等于85的条件,在EXISTS下是“成绩>=85”,在NOT EXISTS 下是“成绩<85”。

  • 第12题:

    单选题
    查询选修课程号为“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")。

  • 第13题:

    设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是( )。

    A、SELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90

    B、SELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩>90

    C、SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩>90

    D、SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90


    参考答案:D

  • 第14题:

    若要查询选修课(学号、课程号、成绩)成绩在80分以上的女生姓名,应使用的SELECT语句是______。

    A.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别="女".AND.成绩>=80

    B.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别:"女".OR.成绩>=80

    C.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别="女".OR.成绩>=80

    D.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别:"女".AND.成绩>=80


    正确答案:D

  • 第15题:

    检索还未确定成绩的学生选课信息,正确的SQL命令是( )。

    A.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学号=选课.学号AND选课.成绩IS NULL

    B.SELECT、学生.学号,姓名,选课.课程号FROM学生JOIN选课 WHERE学生.学号=选课.学号AND选课.成绩=NULL

    C.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩IS NULL

    D.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课 ON学生.学号=选课.学号WHERE选课.成绩=NULL


    正确答案:C
    解析:inner join on表示内链接,内链接是通过比较源表间共享的列的值从多个源表检索行的操作。内联接排除来自不具有与其它源表中的行匹配的行的源表的行。

  • 第16题:

    设有以下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; WHERE SELECT 课程号 FROM KC WHERE课程名="数据结构"

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


    正确答案:D

  • 第17题:

    有如下SQL语句: SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90) 下列哪条命令与该SQL语句等价

    A.SELECT姓名FROM学生表WHERE EXISTS; (SELECT学号FROM成绩表WHERE成绩>90)

    B.SELECT姓名FROM学生表WHERE EXISTS; (SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    C.SELECT姓名FROM学生表WHERE学号EXISTS; (SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    D. SELECT姓名FROM学生表WHERE学号=; (SELECT学号FROM成绩表WHERE成绩>90)


    正确答案:B
    解析:IN是包含运算,此处子查询中得到多个结果,记录不惟一,因此不用“=”运算符;EXISTS是谓词,用来检查在子查询中时候有结果返回。

  • 第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题:

    第 29~30 题使用如下3个数据库表:

    学生表:S(学号,姓名,性别,出生日期,院系)

    课程表:C(课程号,课程名,学时)

    选课成绩表:SC(学号,课程号,成绩)

    在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

    第 29 题 用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。

    A)SELECT学号,姓名FROM S WHERE NOT EXISTS;

    (SELECT﹡FROM SC WHERE SC.学号=S.学号AND成绩<85)

    B)SELECT学号,姓名FROM S WHERE NOT EXISTS:

    (SELECT﹡FROM SC WHERE SC.学号=S.学号AND成绩>=85)

    C)SELECT学号,姓名FROM S,SC

    WHERE S.学号=SC.学号AND成绩>=85

    D)SELECT学号,姓名FROM S,SC

    WHERE S.学号=SC.学号AND ALL成绩>=85


    正确答案:A
    本题属于多表查询,使用联接查询或嵌套查询,选项C)和选项D)使用联接查询,使用时学号字段前要表明所属的表,写法都不完整;选项A)和选项B)中的EXISTS
    属于SQL查询谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。选项A)中的子查询查询的是“SC”表中“学号”等于…S表中“学号”并且成绩小于85的数据,然后在外层查询中检索…S表中的“学号”是否存在于子查询的查询结果中,将不存在的“学号”显示其“学号”和“姓名”的信息。 

  • 第20题:

    若学生表中存储了学号、姓名、成绩等信息,则“查询学生表中所有学号和姓名”的SQL语句是( )。

    A.SELECT*FROM学生
    B.SELECT学号,姓名FROM学生
    C.SELECT学号姓名FROM学生
    D.SELECT学号、姓名FROM学生

    答案:B
    解析:

  • 第21题:

    设学生表和成绩表的结构分别为(学号,姓名,所在系)和(学号,课程名,成绩),如果希望按分数降序查询出“英语系中选修了计算机课程的学生姓名和成绩”,则对应的SQL语句是()。

    • A、SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号
    • B、SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩ASC
    • C、SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩
    • D、SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩DESC

    正确答案:D

  • 第22题:

    在“学生表”中查找所有男生的全部情况是()。

    • A、SELECT学号,姓名FROM学生表WHERE性别=男;
    • B、SELECT学号,姓名FROM学生表WHERE性别="男";
    • C、SELECT*FROM学生表WHERE性别=男;
    • D、SELECT*FROM学生表WHERE性别="男";

    正确答案:D

  • 第23题:

    单选题
    有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90)
    A

    SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE成绩>90)

    B

    SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    C

    SELECT姓名FROM学生表WHERE学号EXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    D

    SELECT姓名FROM学生表WHERE学号=;(SELECT学号FROM成绩表WHERE成绩>90)


    正确答案: B
    解析: IN是包含运算,此处子查询中得到多个结果,记录不惟一,因此不用“=”运算符;EXISTS是谓词,用来检查在子查询中时候有结果返回。