单选题
设数据库有如下表:
产品(产品号,产品名,型号,单价)
购买(购买编号,产品号,购买数量,购买日期)
若要查询“哪些产品从来没有购买过”,正确的SQL语句是______。
A、
SELECT * FROM 产品 WHERE NOT EXISTS(SELECT * FROM 购买;WHERE 产品号=产品.产品号)
B、
SELECT * FROM 产品 WHERE 产品号 NOT EXISTS(SELECT 产品号 FROM 购买)
C、
SELECT * FROM 产品 WHERE 产品号! =ANY(SELECT 产品号 FROM 购买)
D、
SELECT * FROM 产品 WHERE 产品号 =ANY(SELECT 产品号 FROM 购买)
【正确答案】
A
【答案解析】
[解析] NOT EXISTS用来检查在子查询中是否有结果返回(即存在元组或不存在元组)。本题中A项内层查询引用了外层查询的表,查询出在“产品”表中有而在“购买”表中没有的产品号,并给出该产品号对应的产品信息,故A项正确。选项B的命令格式错误。此格式不能使用NOT EXISTS,应该使用IN或NOT IN。ANY是量词,在进行比较运算时只要子查询中有一行能使结果为真,则结果就为真,故C、D两项不符合题目要求。
提交答案
关闭