応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
合格発表日:2025年7月3日(あと44日)

応用情報技術者試験 令和2年秋 午前問29 解説付き過去問

問題

"東京在庫"表と"大阪在庫"表に対して、SQL文を実行して得られる結果はどれか。 ここで、実線の下線は主キーを表す。

正解

解説

この問題は、"東京在庫"表と"大阪在庫"表に対してSQLを実行したときに得られる結果を問うものです。SQL文の動作と演算結果の理解が求められます。

  1. UNIONとUNION ALLの違い
    UNIONは、2つのSELECT文で取得された結果を縦に連結し、重複する行を自動的に1行にまとめて返します。
    一方、UNION ALLは重複を排除せず、すべての行をそのまま返します。つまり、両表に同じ内容の行が存在する場合でも、UNIONは1件、UNION ALLは2件として返します。

  2. 今回のSQL処理内容
    問題の出力結果を見る限り、SQLは「UNION ALL」を使用していることが分かります。
    これは、"東京在庫"と"大阪在庫"の内容をそのまま連結し、重複行である{商品ID=C003, 商品名=モニタ, 在庫数=35}も2件表示されていることから判断できます。
    この処理により、両表の内容がそのまま並べられ、同じ商品が2店舗に存在する場合でも重複して記録されます。

したがって、SQL文の実行結果として正しいのは、両方の表のすべてのレコードをそのまま含み、重複行もそのまま保持した内容になります。