有图书表和借阅表: 图书.DBF:总编号C(6),分类号C(6),书名C(30),作者C(6),出版单位C(20),单价N(8,2)借阅.DBF:借书证号C(5),总编号C(6),借书日期D 查询未被借阅的图书信息,不正确的SQL语句是(

admin2017-09-25  39

问题 有图书表和借阅表:
    图书.DBF:总编号C(6),分类号C(6),书名C(30),作者C(6),出版单位C(20),单价N(8,2)借阅.DBF:借书证号C(5),总编号C(6),借书日期D
    查询未被借阅的图书信息,不正确的SQL语句是(    )。

选项 A、SELECT*FROM图书WHERE总编号<>ANY(SELECT总编号FROM借阅)
B、SELECT*FROM图书WHERE总编号<>ALL(SELECT总编号FROM借阅)
C、SELECT*FROM图书WHERE NOT EXISTS(SELECT*FROM借阅WHERE借阅.总编号=图书.总编号)
D、SELECT*FROM图书WHERE总编号NOT IN(SELECT总编号FROM借阅)

答案A

解析 在SQL中量词ANY表示在进行比较运算时只要子查询中有一行能使结果为真,则结果就是真;量词ALL表示表示在进行比较运算时只有子查询中所有行能使结果为真,则结果才是真;(NOT)EXISTS谓词是用来检查在子查询中是否有结果返回(即存在元组或不存在元组);(NOT)IN相当于集合运算符∈,表示取值在(不在)一个指定集合范围内。本题需要查询未被借阅的图书信息,其中A选项使用<>ANY表示不等于子查询结果中的某个值,也就是说只要不等于子查询中的任意一个值,即满足条件,所以A选项不能表示“未被借阅的图书信息”,其他三项均正确。
转载请注明原文地址:https://kaotiyun.com/show/eCBp777K
0

随机试题
最新回复(0)