UNION ALL句を用いた2表の和集合問い合わせ結果

正解は「エ」です。 SQL の集合演算子 UNION と UNION ALL の動作の違いを理解します。 UNION :2 つの SELECT 文の問い合わせ結果の和集合を求めます。このとき、両方の結果セットで重複する行が存在する場合は重複が排除され、一意な行のみが出力されます。 UNION ALL :重複行の排除を行わず、両方の SELECT 文の結果行をそのまま単純にすべて連結して出力します。 東京在庫表のデータ(3 行): (A001, 50), (B002, 25), (C003, 35) 大阪在庫表のデータ(3 行): (B002, 15), (C003, 35), (D004, 80) UNION ALL を実行すると、両表の行がそのまま連結されるため、重複行 (C003, 35) も排除されずに 2 行とも出力され、合計 6 行の結果となります。 したがって、全 6 行が出力されている「エ」が正解です。 出力される行 東京在庫から 大阪在庫から A001, 50 ○ B002, 25 ○ C003, 35 ○ B002, 15 ○ C003, 35 ○(重複も残る) D004, 80 ○ UNION なら (C003, 35) の重複が1行にまとめられて5行(ウ)になりますが、UNION ALL は重複を残すので6行(エ)です。行の順序は結果の正誤に関係しません。

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

東京在庫 (商品コード, 在庫数)

A001: 50, B002: 25, C003: 35

大阪在庫 (商品コード, 在庫数)

B002: 15, C003: 35, D004: 80

〔SQL文〕 SELECT 商品コード, 在庫数 FROM 東京在庫 UNION ALL SELECT 商品コード, 在庫数 FROM 大阪在庫

出典令和2年度 10月 応用情報技術者試験 午前 問29
ア
選択肢アの画像
イ
選択肢イの画像
ウ
選択肢ウの画像
エ
選択肢エの画像