2025年(令和7年) 秋期 データベーススペシャリスト 午前 問9

“名簿1”表と“名簿2”表のそれぞれ対応する行が全て等しいかどうか確認するSQL文のa、b、cに入れる字句はどれか。

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

[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

a b c
EXCECT UNION ALL INTERSECT
EXCECT UNION INTERSECT
UNION ALL INTERSECT UNION
UNION EXCECT INTERSECT


答え エ


解説
2つの表のそれぞれ対応する行が等しいか確認するには、2つの表の和(UNION)とから2つの表の両方に存在する(INTERSECT)行の表の差(EXCEPT)が何もなければ等しく、差があれば異なるので
 SELECT CASE WHEN COUNT(*) = 0 THEN ‘等しい’ ELSE ‘異なる’ END AS 結果
   FROM ((SELECT * FROM 名簿1 UNION SELECT * FROM 名簿2)
      EXCEPT
      (SELECT * FROM 名簿1 INTERSECT SELECT * FROM 名簿2)
   ) COMPARE

a b c
UNION EXCECT INTERSECT
になる。


キーワード
・UNION

キーワードの解説
  • UNION(和)
    関係データにおける和とは、データの項目が一致している同士で行う演算処理で、2つのデータの和集合になる。
    データ:R
    A B C
    1 2 3
    4 5 6
    データ:S
    A B C
    7 8 9
    4 5 6
    R UNION S
    A B C
    7 8 9
    4 5 6
    1 2 3
    になる。

もっと、「UNION」について調べてみよう。

戻る 一覧へ 次へ