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

admin2016-08-24  24

问题 有图书表和借阅表:图书.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总编号NOTIN(SELECT总编号FROM借阅)

答案A

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

最新回复(0)