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

admin2019-03-11  18

问题 设供应商供应零件的关系模式为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、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);
转载请注明原文地址:https://jikaoti.com/ti/x4f7FFFM
0

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