"名簿1"表と"名簿2"表のそれぞれ対応する行が全て等しいかどうかを確認するSQL文のa, b, cに入れる適切な字句はどれか。 〔SQL文〕 SELECT CASE WHEN COUNT(*) = 0 THEN '等しい' ELSE '異なる' END AS 結果 FROM ((SELECT * FROM 名簿1 [ a ] SELECT * FROM 名簿2) [ b ] (SELECT * FROM 名簿1 [ c ] SELECT * FROM 名簿2) ) COMPARE

表の一致判定は対称差(和−共通)が空かで確かめる

データベーススペシャリスト試験2025年度 秋期 午前II9/SQL / 集合演算

名簿1:
名前住所性別年齢
試験 太郎東京22
情報 花子大阪24
処理 一郎京都35
名簿2:
名前住所性別年齢
試験 太郎東京22
情報 花子大阪24
処理 一郎京都35

選択肢

正解と解説

正解: a: UNION / b: EXCEPT / c: INTERSECT

2つの表が完全に一致するかは、互いの差集合を両方向で取り、どちらも空であることを確かめればよい。この設問の枠組みでは、和集合から共通部分を差し引いた対称差を作り、その件数が0かどうかで判定する。どちらか一方にしかない行があれば対称差に残るため、件数が0でなくなる。

選択肢ごとの解説

出典:令和7年度 秋期 データベーススペシャリスト試験 午前II 問9(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。