设供应商零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下: SELECT Sno FROM

admin2009-09-04  28

问题 设供应商零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下:
       SELECT Sno
         FROM SP SPX
         WHERE (1)
           (SELECT*
             FROM SP SPY
             WHERE (2) AND NOT EXISTS
             (SELECT*
               FROM SP SPZ
               WHERE  (3)));

选项 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号选了的商品,该供应商却没有选择。
   根据以上分解,显然,第(1)空选择否定的表达,即用双重否定表示肯定。而IN/NOT IN的一般用法为:
       SEL ECT *
           FROM table_ namel
           WHERE columnl IN/NOT IN
           (SEL ECT columnl
               FROM table_ name2 WHERE conditions);
   也就是说,IN后面接的是一个集合,且前面有列名columnl。
       EXISTS/NOT EXISTS指是否存在,一般用法为:
           SELECT *
               FROM table_ namel
               WHERE EXISTS/NOT EXISTS
                     (SELECT *
                     FROM table_ name2 WHERE conditions);
转载请注明原文地址:https://kaotiyun.com/show/WrxZ777K
0

相关试题推荐
随机试题
最新回复(0)