itgle.com

下面的SQL语句能实现的功能是( )。SELECT宰FROM学生WHERE班级号=”0801”:UNION;SELECT牛FROM学生WHERE班级号=”0802”A)查询在0801班或0802班的学生信息B)查询0801班或0802班的班级信息C)查询既在0801班又在0802班的学生信息D)语句错误,不能执行

题目

下面的SQL语句能实现的功能是( )。

SELECT宰FROM学生WHERE班级号=”0801”:

UNION;

SELECT牛FROM学生WHERE班级号=”0802”

A)查询在0801班或0802班的学生信息

B)查询0801班或0802班的班级信息

C)查询既在0801班又在0802班的学生信息

D)语句错误,不能执行


相似考题
参考答案和解析
正确答案:A
SQL支持集合的并(UNION)运算,即可以将两个SELECT语句的查询结果通过并运算合并成一个查询结果。为了进行并运算,要求这样的两个查询结果具有相同的字段个数,并且对应字段的值要出自同一个值域(相同的数据类型和取值范围)。所以题干中的SQL语句实现的功能是查询班级号为0801或0802的学生信息。
更多“下面的SQL语句能实现的功能是( )。SELECT宰FROM学生WHERE班级号=”0801”: UNION; SELECT ”相关问题
  • 第1题:

    有如下SQL语句: SELECT班级名称FROM班级WHERE NOT EXISTS; (SELECT*FROM学生WHERE班级号=班级.班级号) 执行该语句后,班级名称的字段值是( )。

    A.计算机200801班

    B.计算机200805班

    C.计算机200801班和计算机200805班

    D.没有记录


    正确答案:B
    解析:该SQL语句的功能是,查找还没有学生记录的班级名称。在“学生”表中暂时还没有“计算机200805班”学生的记录,所以查询结果为“计算机200805班”。EXISTS是谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。

  • 第2题:

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

  • 第3题:

    有学生表和班级表文件,检索哪些班级中至少有一个学生的总分是大于700的,正确的命令是( )。

    A.SELECT 班级名称 FROM 班级表 WHERE 班级号 IN; SELECT 班级号 FROM 学生表 WHERE 总分>700

    B.SELECT 班级名称 FROM 班级表 WHERE 班级号 IN; (SELECT 班级号 FROM 学生表 WHERE 总分>700)

    C.SELECT 班级名称 FROM 班级表 WHERE 学号 IN; SELECT 学号 FROM 学生表 WHERE 总分>700

    D.SELECT 班级名称 FROM 班级表 WHERE 学号 IN; (SELECT 学号 FROM 学生表 WHERE 总分>700)


    正确答案:B
    解析:本题是关于SQL嵌套查询语句的使用,通过内层的查询所有总分大于700的学号集合,然后从班级关系中检索元组的学号属性值在该集合中的每个元组。注意内层嵌套的查询语句要用圆括号括起来。

  • 第4题:

    在学生表中查找没有选课的学生,下列语句正确的是( )。

    A.SELECT*FROM 学生 WHERE EXISTS; (SELECT*FROM 选课 WHERE学生号=学生.学生号)

    B.SELECT*FROM 学生 WHERE NOT EXISTS; (SELECT*FROM 选课 WHERE 学生号=学生.学生号)

    C.SELECT*FROM 学生 WHERE EXISTS; (SELECT*FROM 选课 WHERE 学生号=学生号)

    D. SELECT*FROM 学生 WHERE NOT EXISTS; (SELECT*FROM 选课 WHERE 学生号=学生号)


    正确答案:B
    解析:本题是嵌套循环查循,在外层中使用了谓词EXISTS。依据题意,在子查询中有结果返回,应该用EXISTS谓词。内层查询引用了外层查询的表,所以在WHERE短语的学生号中使用关系名,即学生.学生号。

  • 第5题:

    列出“学生”表中专业为“电子商务”和“国际贸易”的学生信息应使用的SQL查询语句是______。

    A.SELKCT * FROM 学生 WHERE 专业=“电子商务”; AND SELECT * FROM 学生 WHERE专业=“国际贸易”

    B.SELECT * FROM 学生 WHERE专业=“电子商务”; UNION WHERE 专业=“国际贸易”

    C.SELECT * FROM 学生 WHERE专业=“电子商务”; UNION SELECT*FROM 学生 WHERE专业=“国际贸易”

    D.SELECT*FROM学生 WHERE 专业=“电子商务”; IN SELECT*FROM学生GROUP BY专业=“国际贸易”


    正确答案:C
    解析:本题要求查询两个专业的学生信息,并将两个查询结果合并成一个查询结果,可通过集合“并”运算(UNION)来实现。注意:“并”运算要求两个查询结果的字段个数相同,并且对应字段具有相同的数据类型和取值范围。

  • 第6题:

    查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的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”是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。

  • 第7题:

    有学生表和班级表文件,检索班级中至少有一个学生是少数民族的,正确的命令是

    A.SELECT班级名称FROM班级表WHERE班级号IN; SELECT班级号FROM学生表WHERE民族!="汉"

    B.SELECT班级名称FROM班级表WHERE班级号IN; (SELECT班级号FROM学生表WHERE民族!="汉")

    C.SELECT班级名称FROM班级表WHERE学号IN; SELECT学号FROM学生表WHERE民族!="汉"

    D.SELECT班级名称FROM班级表WHERE学号IN; (SELECT学号FROM学生表WHERE民族!="汉")


    正确答案:B
    解析:本题是关于SQL嵌套查询语句的使用,通过内层的查询所有少数民族学生的学号集合,然后从班级关系中检索元组的学号属性值在该集合中的每个元组。注意内层嵌套的查询语句要用圆括号括起来。

  • 第8题:

    查询选修课程号为“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表示所有的结果。

  • 第9题:

    有SQL语句: SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=; ALL(SELECT 工资 FROM 教师 WHERE 系号 =“02”) 与如上语句等价的SQL语句是

    A.SELECT DISTINCT 系号 PROM 教师 WHERE 工资>=; (SELECT MAX(工资)FROM 教师 WHERE 系号=“02”)

    B.SELECT DISTINCT 系号 FROM 教师 WHERE 工资=; (SELECT MIN(工资)FROM 教师 WHERE 系号=“02”)

    C.SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=; ANY(SELECT 工资 FROM 教师 WHERE 系号=“02”)

    D.SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=; SOME(SELECT 工资 FROM 教师 WHERE 系号=“02”)


    正确答案:A
    解析:题干中的SQL语句的功能是:查询那些工资比02系工资都高的教师所在的系号,四个选项中只有选项A中的查询条件与此等价,用(SELECT MAX(工资)FROM…WHERE…)实现选择出最高工资,故选项A为正确答案。选项B的查询条件表示工资大于02系中工资最低的教师的工资,选项C和D中的州Y和SOME是同义词,表示查询出只要比02系中某一个教师工资高的记录即可。

  • 第10题:

    SQL语句:

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

    (SELECT班级号FROM学生)

    该语句等价于:

    SELECT﹡FROM班级WHERE NOT__________;

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


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

  • 第11题:

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

  • 第12题:

    有如下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

  • 第13题:

    实现“从学生信息表中找出性别为女的学生姓名”的SQL语句是

    A.SELECT*FROMs

    B.SELECT*FROM s WHERE sex='女'

    C.SELECT sname FROM s WHERE sex='女'

    D.SELECT*FROM s WHERE grade="


    正确答案:C
    解析:题目要求是选出姓名字段,而不是所有字段,因此选择C)。

  • 第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订单.职员号=职员.职员号AND姓名=”王五” 与如上语句功能相同的SQL语句是( )。

    A. SELECT订单号,签订日期,金额FROM订单 WHERE EXISTS(SELECT*FROM职员WHERE姓名=”王五”)

    B. SELECT订单号,签订日期,金额FROM订单WHERE EXISTS(SELECT书FROM职员WHERE职员号=订单.职员号AND姓名=”王五”)

    C. SELECT订单号,签订日期,金额FROM订单 WHERE IN(SELECT职员号FROM职员WHERE姓名=”李二”)

    D. SELECT订单号,签订日期,金额FROM订单WHERE IN(SELECT职员号FROM职员WHERE职员号=订单.职员号AND姓名=”王五”)


    正确答案:B
    谓词EXISTS用来检验在子查询中是否有结果返回,本题中内层查询引用了外层查询的表,所以也是内外层互相关嵌套查询。故排除选项A、C、D的错误之处是在 WHERE和IN之间缺少“职工号”。

  • 第17题:

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

  • 第18题:

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

  • 第19题:

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

  • 第20题:

    有以下SQL语句: SELECT 订单号,签订日期,金额 FROM 订单,职员 WHERE 订单.职员号=职员.职员号 AND 姓名="李二" 与如上语句功能相同的SQL语句是( )。

    A.SELECT 订单号,签订日期,金额 FROM 订单 WHERE EXISTS (SELECT*FROM 职员 WHERE 姓名="李二")

    B.SELECT 订单号,签订日期,金额 FROM 订单 WHERE EXISTS(SELECT*FROM 职员 WHERE 职员号=订单.职员号AND姓名="李二")

    C.SELECT 订单号,签订日期,金额 FRM 订单 WHERE IM (SELECT 职员号 FROM 职员 WHERE 姓名="李二")

    D.SELECT 订单号,签订日期,金额 ROM 订单 WHERE IN(SELECT 职员号FROM 职员 WHERE 职员号=订单.职员号 AND 姓名="李二")


    正确答案:B
    解析:题干中的 SQL 语句的功能是:查询那些姓名为“李二”的职员的订单号,签订日期和金额的信息。4个选项中只有选项B中的查询条件与此等价。

  • 第21题:

    ( 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

  • 第22题:

    查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的 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

  • 第23题:

    下列SQL语句中,能够对查询结果进行排序的是()

    • A、SELECT * FROM 学生表 WHERE 专业=‘软件’ORDER BY 年龄
    • B、SELECT * FROM 学生表 WHERE 专业=‘软件’
    • C、SELECT * FROM 学生表 WHERE 专业=‘软件’AVG 年龄
    • D、SELECT * FROM 学生表 WHERE 专业=‘软件’DISTINCT 年龄

    正确答案:A