niusouti.com

单选题有如下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成绩表W

题目
单选题
有如下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是谓词,用来检查在子查询中时候有结果返回。
更多“有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT”相关问题
  • 第1题:

    在SQL查询中,若要取得“学生”数据表中的所有记录和字段,其SQL语法为( )。

    A.SELECT姓名FROM学生

    B.SELECT*FROM学生

    C.SELECT姓名FROM学生WHERE学号=02650

    D.SELECT*FROM学生WHERE学号=02650


    正确答案:B
    解析: 本题考查SQL,中查询语句的知识。在SQL的查询语句中,“*”代表所有字段,WHERE子句用于指定查询条件,只有满足条件的元组才会出现在结果集中。本题中要求查询所有记录和字段,所以不应指定WHERE子句。

  • 第2题:

    下列语句中,功能相同的命令是()。

    A.SELECT学号,姓名FROM学生WHERE年龄BETWEEN20TO22;

    B.SELECT学号,姓名FROM学生WHERE年龄>20AND年龄<=22;

    C.SELECT学号,姓名FROM学生WHERE年龄>=20AND年龄<22;

    D.SELECT学号,姓名FROM学生WHERE年龄>=20AND年龄<=22;


    参考答案:AD

  • 第3题:

    有如下SQL SELECT语句SELECT*FORM工资表WHERE基本工资<=2000 AND基本工资>=1500下列与该语句等价

    有如下SQL SELECT语句 SELECT*FORM工资表WHERE基本工资<=2000 AND基本工资>=1500下列与该语句等价的

    A.SELECT * FORM. 工资表 WHERE 基本工资 BETWEEN 1500 AND 2000

    B.SELECT * FORM. 工资表 WHERE 基本工资 BETWEEN 2000 AND 1500

    C.SELECT * FORM. 工资表 WHERE 基本工资 FROM 1500 INTO 2000

    D.SELECT * FORM. 工资表 WHERE 基本工资 FROM 2000 INT0 1500


    正确答案:A
    解析:SQL查询语句中特殊运算BETWEEN...AND...的含义为“…和…之间”。BETWEEN...AND...是SQL查询语句中的一个特殊运算符,意思为“…和…之间”,相当与逻辑运算中的(A>=AND>=B,其中A>B,选项B中数值放置错误,选项C和选项D为语法错误。掌握VisualFoxPro中关系表达式及逻辑表达式运算符的含义。

  • 第4题:

    在SQL查询中,若要取得“学生”数据表中的所有记录和字段,其SQL语法为( )。

    A. SELECT姓名FROM学生

    B. SELECT*FROM学学生

    C. SELECT姓名FROM 学生WHERE学号:02650

    D. SELECT*FROM学生 WHERE学号:02650


    正确答案:B
    本题考查SQ1中查询语句的知识。在 SQ1的查询语句中。“*”代表所有字段,WHERE子句用于指定查询条件,只有满足条件的元组才会出现在结果集中。本题中要求查询所有记录和字段,所以不应指定WHERE子句。

  • 第5题:

    有如下SQL SELECT语句SELECT*FORM. 工资表 WHERE 基本工资<=2000 AND 基本工资>=1500下列与该语

    有如下SQL SELECT语句 SELECT*FORM. 工资表 WHERE 基本工资<=2000 AND 基本工资>=1500 下列与该语句等价的

    A.SELECT*FORM. 工资表 WHERE 基本工资 BETWEEN 1500 AND 2000

    B.SELECT*FORM. 工资表 WHERE 基本工资 BETWEEN 2000 AND 1500

    C.SELECT*FORM. 工资表 WHERE 基本工资 FROM1500 INTO 2000

    D.SELECT*FORM. 工资表 WHERE 基本工资 FROM 2000 INTO 1500


    正确答案:A
    解析:SQL查询语句中特殊运算BE- TWEEN...AND..,的含义为“…和…之间”。BETWEEN…AND...是SQL查询语句中的一个特殊运算符,意思为“…和…之间”,相当与逻辑运算中的(A>=AND>=8,其中A>B),选项 B)中数值放置错误,选项

  • 第6题:

    有如下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是谓词,用来检查在子查询中时候有结果返回。

  • 第7题:

    有SQL语句: SELECT * FROM 教师 WHERE NOT (工资>3000 OR 工资<2000) 与如上语句等价的SQL语句是

    A.SELECT*FROM 教师 WHERE 工资BETWEEN 2000 AND 3000

    B.SELECT*FROM 教师 WHERE 工资>2000 AND 工资<3000

    C.SELECT*FROM 教师 WHERE 工资>2000 OR 工资<3000

    D.SELECT*FROM 教师 WHERE 工资<=2000 AND 工资>3000


    正确答案:A
    解析:BETWEEN…AND…是SQL中比较特殊的函数,经常与SQL联合使用用来设定查询条件,这个函数所设定的查询条件是值在某个范围内,并且包含边界取值,题目中WHERE所设定的条件是NOT(工资>3000 AND工资 2000),其含义不是在小于2000或大于3000的范围内,这恰好是在2000到3000之间,选项A使用 BETWEEN…AND…设定查询条件,与此条件实现的功能一致.故选项A为正确答案。选项B表示工资大于2000并且小于3000,选项C表示工资大干 2000或者工资小于3000,选项D表示工资小于等于 2000并且大于等于3000。

  • 第8题:

    设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。

    SELECT学号,姓名,性别FROM s WHERE__________(SELECT木FROM sc WHERE sc.学号=s.学号AND成绩<85)


    正确答案:
    NOTEXISTS
    查询操作使用SELECT命令,本题是联接查询和嵌套查询的结合使用,内层查询是将s表和SC表通过学号联接起来,查询的结果是所有至少有一门成绩低于85分信息的集合,外层查询S表中不在内层查询结果中出现的学号、姓名和单位,在WHERE条件短语中要用NOT EXISTS谓词。EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。&

  • 第9题:

    SQL语句:

    SELECT木FROM班级WHERE班级号NOT IN;

    (SELECT班级号FROM学生)

    该语句等价于:

    SELECT﹡FROM班级WHERE NOT__________;

    (SELECT木FROM学生WHERE班级号=班级.班级号)


    正确答案:
    EXISTS
    【解析】题中第一个SQL语句的含义是,检索哪些班级中还没有学生的班级信息,IN相当于数学集合运算符∈。EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回。&

  • 第10题:

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

    A.SELECT*FROM学生WHERE成绩>600
    B.SELECT姓名FROM学生WHERE成绩>600
    C.IF成绩>600THENSELECT姓名FROM学生
    D.IF成绩>600SELECT姓名FROM学生

    答案:B
    解析:

  • 第11题:

    在ACCESS“学生”表中有学号、姓名、性别、入学成绩、身高字段。现需查询姓名中含有“娟”和“丽”字的学生信息正确的SQL语句是()。

    • A、select*from学生Where姓名=”娟”or姓名=”丽”
    • B、select*from学生Where姓名=”*娟*”or姓名=”*丽*”
    • C、select*from学生Where姓名LIKE”*娟*”or姓名LIKE”*丽*”
    • D、select*from学生Where姓名LIKE”娟”AND姓名=”丽”

    正确答案:D

  • 第12题:

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


    正确答案:错误

  • 第13题:

    有如下SQL-SELECT语句

    SELECT * FROM HH WHERE 单价 BETWEEN 10.6 AND 13.4

    与该语句等价的是

    A.SELECT * FROM HH WHERE 单价<=13.4 AND 单价>=10.6

    B.SELECT * FROM HH WHERE 单价<13.4 AND 单价>10.6

    C.SELECT * FROM HH WHERE 单价>=13.4 AND 单价<=10.6

    D.SELECT * FROM HH WHERE 单价>13.4 AND 单价<10.6


    正确答案:A
    解析:BETWEEN匒ND呉馑际窃"吅蛥之间",包含等于。

  • 第14题:

    查询选修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是错误的。

  • 第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学号FRM SC WHERE课程号=’C2’)


    正确答案:D
    D。【解析】选项D中的内查询SELECT学号FROMSCWHERE课程号=”C2”的查询结果有可能为多个,而选项D中的外层查询WHERE子句后面的逻辑表达式使用“=”,这样会导致产生错误的结果。

  • 第16题:

    有SQL语句:SELECT * FROM 教师 WHERE NOT(工资>3000 OR 工资<2000)与如下语句等价的SQL语句是A)SELECT*FROM 教师 WHERE 工资 BETWEEN 2000 AND 3000B) SELECT*FROM 教师 WHERE 工资>2000 AND 工资<3000C)SELECT*FROM 教师 WHERE 工资>2000 OR 工资<3000D) SELECT*FROM 教师 WHERE 工资<=2000 AND 工资>3000


    正确答案:A
    BETWEEN…AND…是SQL中比较特殊的函数,经常与SQL联合使用用来设定查询条件,这个函数所设定的查询条件是值在某个范围内,并且包含边界取值,题目中WHERER所设定的条件是NOT(工资>3000 AND工资<2000),其含义不是在小于2000或大于3000的范围内,这恰好是在2000到3000之间,选项A使用BETWEEN ... AND...设定查询条件,与此条件实现的功能一致。故选项A为正确答案。选项B表示工资大于2000并且小于3000,选项C表示工资大于2000或者工资小于3000,选项D表示工资小于等于2000并且大于等于3000。

  • 第17题:

    “学生”表中学生号为主索引,若用SQL命令检索所有比“孙静”年龄大的同学,下列语句正确的是( )。

    A. SELECT*FROM学生; WHERE 年龄>(SELECT 年龄 FROM学生; WHERE 姓名=“孙静”)

    B.SELECT*FROM学生; WHERE 姓名=“孙静”

    C. SELECT*FROM 学生: WHERE 年龄>(SELECT 年龄; WHERE 姓名=“孙静”)

    D.SELECT*FROM 学生: WHERE 年龄>“孙静”


    正确答案:A
    解析:本题是一个嵌套循环查询的语句,内层循环是检索出“孙静”的年龄,外层循环用WHERE语句检索出比“孙静”年龄大的同学,外层循环结果依赖于内层查询。

  • 第18题:

    当前目录下有“学生”表和“成绩”表两个文件,要求查找同时选修了“课程名称”为“计算机”和“英语”的学生姓名,下列SQL语句的空白处应填入的语句为( )。

    SELECT姓名FROM学生,成绩;

    WHERE学生.学号=成绩.学号;

    AND课程名称=”计算机”;

    AND姓名__;

    (SELECT姓名FROM学生,成绩;

    WHERE学生.学号=成绩.学号;

    AND课程名称=”英语”)


    正确答案:C
    本小题为SQL.,的嵌套查询,通过内层查找符合条件的记录集合,再通过外层查询检索该集合中相同的记录值,使用的特殊运算符为IN(包含运算)。ANY、ALL和SOME是量词,其中ANY和SOME是同义词,在进行比较运算时只要子查询中有一行能使结果为真,则结果为真;而ALL则要求子查询中的所有行都使结果为真时,结果才为真。EXISTS是谓词,EXISTS和NOTEXISTS是用来检查在子查询中是否有结果返回(即存在元组或不存在元组)。

  • 第19题:

    有下列SQL SELECT语句:SELECT*FROM 工资表 WHERE 基本工资<=3000 AND 基本工资>=1000下列与该语

    有下列SQL SELECT语句: SELECT*FROM 工资表 WHERE 基本工资<=3000 AND 基本工资>=1000 下列与该语句等价的是( )。

    A.SELECT*FROM 工资表 WHERE 基本工资 BETWEEN 1000 AND 3000

    B.SELECT*FROM 工资表 WHERE 基本工资 BETWEEN 3000 AND 1000

    C.SELECT*FROM 工资表 WHERE 基本工资 FROM 1000 INTO 3000

    D.SELECT*FROM 工资表 WHERE 基本工资 FROM 3000 INTO 1000


    正确答案:A
    解析:SQL查询语句中特殊运算BETWEEN...AND...的含义为“...和...之间”,意思为“..和..之间”相当于逻辑与运算中的(A>=AND>=B,其中A>B),选项B)中数值放置错误,选项C)和选项D)语句错误。

  • 第20题:

    ( 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

  • 第21题:

    在SQL查询中,若要取得“学生”数据表中的所有记录和字段,其SQL语法为( )。

    A)SELECT姓名FROM学生

    B)SELECT*FROM学生

    C)SELECT姓名FROM学生WHERE学号=02650

    D)SELECT*FROM学生WHERE学号=02650


    正确答案:B
    本题考查SQL中查询语句的知识。在SQL的查询语句中,“*”代表所有字段,WHERE子句用于指定查询条件,只有满足条件的元组才会出现在结果集中。本题中要求查询所有记录和字段,‘所以不应指定WHERE子句。

  • 第22题:

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

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

    答案:B
    解析:

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