有下列SQL语句:SELECT 姓名 FROM 作者 WHERE NOT EXISTS; (SELECT*FROM 图书 WHERE 作者编号=作者.作者编号)执行该语句后,查询结果中的字段值是( )。A.1B.赵三立C..T.D..F.

题目

有下列SQL语句:

SELECT 姓名 FROM 作者 WHERE NOT EXISTS; (SELECT*FROM 图书 WHERE 作者编号=作者.作者编号)执行该语句后,查询结果中的字段值是( )。

A.1

B.赵三立

C..T.

D..F.


相似考题
参考答案和解析
正确答案:B
解析:本题中SQL语句的功能是查找还没有出版过图书的作者姓名。在“图书”表中暂时还没有作者“赵三立”出书的记录,所以查询结果为“赵三立”。EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。
更多“有下列SQL语句:SELECT 姓名 FROM 作者 WHERE NOT EXISTS; (SELECT*FROM 图书 WHERE 作者编号=作 ”相关问题
  • 第1题:

    查询所有“工程师”读者借阅过的图书编号,正确的SQL语句是

    A.SELECT图书编号FROM读者,借阅WHERE职称=“工程师”

    B.SELECT图书编号FROM读者,图书WHERE职称=“工程师”

    C.SELECT图书编号FROM借阅WHERE图书编号=(SELECT图书编号FROM借阅WHERE职称=“工程师”)

    D.SELECT图书编号FROM借阅WHERE借节证号IN(SELECT借书证号FROM读者WHERE职称=“工程师”)


    正确答案:D
    解析:此处涉及嵌套查询的知识,根据题目分析可知需要采用嵌套的SQL语句进行查询。“工程师”来自读者表中的职称字段,“图书编号”来自借阅表,而读者表和借阅表共有字段为借书证号,所以此查询WHERE条件应该为借书证号,所以选D。

  • 第2题:

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

  • 第3题:

    查询北京作者出版的图书情况,要求包含作者姓名、书名和价格信息,并按图书价格降序排列,下列SQL语句正确的是( )。

    A.SELECT 作者姓名,书名,价格 FROM 图书,作者 ;

    JOIN 图书.作者编号=作者.作者编号;

    WHERE 所在城市="北京";

    ORDER BY 价格 DESC

    B.SELECT 作者姓名,书名,价格 FROM 图书,作者 ;

    JOIN 图书.作者编号=作者.作者编号;

    WHERE 所在城市="北京";

    ORDER BY 价格

    C.SELECT 作者姓名,书名,价格 FROM 图书,作者 ;

    WHERE 图书.作者编号 = 作者.作者编号;

    AND 所在城市="北京";

    ORDER BY 价格 DESC

    D.SELECT 作者姓名,书名,价格 FROM 图书,作者 ;

    WHERE 图书.作者编号 = 作者.作者编号;

    AND 所在城市 ="北京";

    ORDER BY 价格


    正确答案:C

  • 第4题:

    求至少出版两本以上图书的作者姓名及数量,下列SQl。语句正确的是( )。

    A.SELECT作者姓名,cOUNT(*)AS数量FROM图书,作者 HAVING COUNT(*)>一2

    B.SELECT作者姓名,COUNT(*)AS数量FROM图书,作者 WHERE作者.作者编号=图书.作者编号 GROUP BY图书.作者编号HAVING COUNT(*)>=2

    C.SELECT作者姓名,COUNT(*)AS数量FROM图书,作者 WHERE作者.作者编号=图书.作者编号 GROUP BY图书.作者编号SET COUNT(*)>=2

    D.SELECT作者姓名,COUNT(*)AS数量FROM图 书,作者 WHERE作者.作者编号一图书.作者编号 AND COUNT(*)>=2GROUP BY图书.作者编号


    正确答案:B
    B。【解析】本题要求掌握HAVING子句的功能及作用,选项A中,没有对查询进行分组;选项C中SET短语错误,对分组条件做进一步限定,需要HAVING子句,选项D中也存在语法错误,HAVING子句只能跟在GROUPBY短语后一起使用。

  • 第5题:

    设数据库有如下表:

    作者表(作者号,姓名,电话)

    投稿表(作者号,投稿日期,文章名,审稿结果)

    作者表中保存的是所有投过稿的作者信息,不保存没有投稿的作者。现在查询所投文章中,所有审稿结果都是通过的作者号和姓名,下面语句正确的是( )。

    A.SELECT作者号,姓名FROM作者表; WHERE作者号=(SELECT作者号FROM投稿表WHERE审稿结果=ˋ通过ˊ)

    B.SELECT作者号,姓名:FROM作者表; WHERE作者号IN(SELECT作者号FROM投稿表WHERE审稿结果=ˋ通过ˊ)

    C.SELECT作者号,姓名FROM作者表; WHERE作者号NOT IN(SELECT作者号FROM投稿表WHERE审稿结果!=ˋ通过ˊ)

    D.SELECT作者号,姓名FROM作者表; WHERE作者号EXISTS(SELECT作者号FROM投稿表WHERE审稿结果=ˋ通过ˊ)


    正确答案:C
    此处涉及嵌套查询和量词谓词查询的知识,根据题目分析可知需要采用嵌套SOL语句进行查询,格式为SELECT"[字段名]FROM[表名]WHERE[条件]。NOTEXIST是一个子查询,EXISTS是谓词,EXISTS或NOTEXISTS是用爿检查在子查询中是否有结果返回,即存在元组或不存在元组用爿返回子查询结果。用WHERE条件查询语句查询审稿结果为通过的记录,本题主要考查子查询的概念,首先分析题意:查询所投文章中,所有审稿结果都是通过的作者号和姓名。每个作者可能投稿多次,但可能存在审稿结果通过和未通过两种情况。本题需要找出所投稿件全部审核通过的作者信息。若子查询为SELECT作者号FROM投稿表WHERE审稿结果=ˋ通过ˊ,返回结果仅为审稿结果通过部分的作者信息,但不能确定此作者的所有稿件全部为审核通过。因此,选项A,B,D均不正确。C选项子查询语句SELECT作者号FROM投稿表WHERE审稿结果!=ˋ通过ˊ,返回结果为稿件审核结果为未通过的作者号,只要有稿件审核未通过就从作者表里面排除掉。因此C选项的查询结果为从作者表中排除有稿件审核不通过的记录,剩下的全部为审稿结果通过的作者信息。故本题选择C选项。