单选题 设供应商供应零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的 SQL语句如下:
SELECT Sno
FROMSP SPX
WHERE (37)
(SELECT*
FROM SP SPY
WHERE (38) ANDNOTEXISTS
(SELECT*
FROM SP SPZ
WHERE (39) ));

单选题 A.EXISTS B.NOTEXISTS C.IN D.NOT IN
【正确答案】 B
【答案解析】
单选题 A.SPY.Sno='168’ B.SPY.Sno<>'168'
C.SPY.Sno=SPX.Sno D.SPY.Sno<>SPX.Sno
【正确答案】 A
【答案解析】
单选题 A.SPZ.Sno=SPY.Sno AND SPZ.Pno=SPY.Pno
B.SPZ.Sno=SPX.Sno AND SPZ.Pno=SPX.Pno
C.SPZ.Sno=SPX.Sno AND SPZ.Pno=SPY.Pno
D.SPY.Sno<>'168' AND SPZ.Pno=SPY.Pno
【正确答案】 C
【答案解析】[解析] 题目要求的是至少包含了供应商“168”所供应的全部零件的供应商号,可以分解成两个否定形式:不存在这样的供应商,168号选了的商品,该供应商没有选择。
根据以上的分解,显然第一空选择否定的表达,而IN/NOT IN的一般用法为
SELECT *
FROM table_name1
WHERE column1 IN/NOT IN
(SELECT column1
FROM table_name2
WHERE conditions);
也就是说,IN后面接的是一个集合,且前面有列名column1。
EXISTS/NOT EXISTS指是否存在,一般用法为:
SELECT *
FROMtable_name1
WHEREEXISTS/NOTEXISTS
(SELECT*
FROMtable_name2
WHERE conditions);