和両立である表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)
(イ)になる。
【キーワード】
・和両立