平成22年 秋期 情報セキュリティスペシャリスト 午前II 問21

和両立である表R(ID, NAME)、S(NO, NAMAE)がある。
差集合R-Sを求めるSELECT文とするために、aに入れるべき適切な字句はどれか。
ここで、下線部は主キーを表す。
また、NAMEとNAMAEはNULL不可とする。

SELEST * FROM R WHERE   a  
    (SELECT * FROM S WHERE S.NO = R.ID AND S.NAMAE = R.NAME)

 ア  EXISTS
 イ  NOT EXISTS
 ウ  NOT IN
 エ  R.ID NOT IN


答え イ


解説
差集合R-Sを求めるには、表Rから表Sと共通の部分を取り除けばよい。
表Rと表Sの共通部分は
 SELECT * FROM S WHERE S.NO = R.ID AND S.NAMAE = R.NAME
で表現できるので、表Rでこの部分ではないところを取りだすには、NOT EXISTSを使って
 SELEST * FROM R WHERE NOT EXISTS
     (SELECT * FROM S WHERE S.NO = R.ID AND S.NAMAE = R.NAME)
(イ)になる。


キーワード
・和両立

キーワードの解説

戻る 一覧へ 次へ