令和7年度秋期 問9 / 25

令和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

令和7年度秋期の他の問題