平成26年度春期 応用情報技術者試験 午前 問28

分野:データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計)|実際に出題されたIPA過去問題

"東京在庫"表と"大阪在庫"表に対して,SQL文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。〔SQL文〕SELECT 商品コード,在庫数 FROM 東京在庫 UNION ALL SELECT 商品コード,在庫数 FROM 大阪在庫

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より

※選択肢ア〜エは上の図表内に記載されています。

解答・解説を見る

正解:エ

AI解説

UNION ALLは二つのSELECT結果を単純に連結する集合演算で、重複行をそのまま残す点がUNIONとの違いである。したがって東京在庫の全行と大阪在庫の全行がすべて並んだ結果(両表に同じ商品コード・在庫数の行があっても削除されない)が正解となる。 ア: 重複行が除かれた結果はUNION(ALLなし)の実行結果であり、UNION ALLの結果ではない。 イ: 商品コードごとに在庫数を合計した結果は、UNIONではなくGROUP BYとSUMを使った場合の結果である。 ウ: 両方の表に存在する行だけを取り出した結果は積集合(INTERSECT)に相当し、UNION ALLではない。 エ: 正しい。UNION ALLは重複を除去せず、両表の全行をそのまま連結した結果を返す。 💡 「ALL=重複をALLそのまま残す」と覚える。UNION(重複除去)、UNION ALL(重複保持)、INTERSECT(積)、EXCEPT(差)の使い分けは頻出である。

出典:平成26年度 春期 応用情報技術者試験 午前 問28 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計))の過去問