令和7年度 秋期 データベーススペシャリスト試験 午前II 問9
“名簿1”表と“名簿2”表のそれぞれ対応する行が全て等しいかどうかを確認するSQL文のa、b、cに入れる適切な字句はどれか。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:エ
-
ア: a = EXCEPT、b = UNION ALL、c = INTERSECT
誤り。名簿1 EXCEPT 名簿2 と名簿1 INTERSECT 名簿2 を UNION ALL すると、両方の結果が残るため、名簿1と名簿2が等しい場合でも行が残り、COUNT(*) は 0 になりません。 -
イ: a = EXCEPT、b = UNION、c = INTERSECT
誤り。アの場合と同様に INTERSECT の結果が残るため、名簿1と名簿2が等しい場合でも COUNT(*) は 0 になりません。 -
ウ: a = UNION ALL、b = INTERSECT、c = UNION
誤り。名簿1 UNION ALL 名簿2 と名簿1 UNION 名簿2 の INTERSECT を取ると、名簿1(=名簿2)と同じ行集合が得られ、COUNT(*) は 0 にはなりません。 -
エ: a = UNION、b = EXCEPT、c = INTERSECT
正しい。(名簿1 UNION 名簿2) EXCEPT (名簿1 INTERSEクト 名簿2) は名簿1と名簿2の対称差(どちらか一方にのみ含まれる行)を求める式です。名簿1と名簿2が完全に一致していれば対称差は空集合となり、COUNT(*) = 0 となります。
答え
エ: a = UNION、b = EXCEPT、c = INTERSECT
出典:令和7年度 秋期 データベーススペシャリスト試験 午前II 問9