“東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。
東京在庫
| 商品コード(主キー) | 在庫数 |
|---|---|
| A001 | 50 |
| B002 | 25 |
| C003 | 35 |
大阪在庫
| 商品コード(主キー) | 在庫数 |
|---|---|
| B002 | 15 |
| C003 | 35 |
| D004 | 80 |
〔SQL 文〕
SELECT 商品コード, 在庫数 FROM 東京在庫
UNION ALL
SELECT 商品コード, 在庫数 FROM 大阪在庫テクノロジ系
“東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。
東京在庫
| 商品コード(主キー) | 在庫数 |
|---|---|
| A001 | 50 |
| B002 | 25 |
| C003 | 35 |
大阪在庫
| 商品コード(主キー) | 在庫数 |
|---|---|
| B002 | 15 |
| C003 | 35 |
| D004 | 80 |
〔SQL 文〕
SELECT 商品コード, 在庫数 FROM 東京在庫
UNION ALL
SELECT 商品コード, 在庫数 FROM 大阪在庫正解 エ
UNION ALLは、2つのSELECTの結果を重複行も残したまま全てつなげます。
UNION ALLは、2つの問合せ結果の行をそのまま縦に連結する演算です。重複行を取り除かないので、両方の表にある(C003, 35)も2行残ります。東京在庫の3行と大阪在庫の3行を合わせて、結果は6行です。A001、B002(25)、C003(35)、B002(15)、C003(35)、D004がそろうのはエだけです。
ア:両方の表に共通する(C003, 35)を2行とも除いた4行です。UNION ALLは、どの行も取り除きません。
イ:商品コードごとに在庫数を合計した結果です。合計するにはGROUP BYとSUMが必要で、UNION ALLは値を足しません。
ウ:UNIONは、重複行を1行にまとめます。ウは(C003, 35)が1行なので、UNIONの結果です。
出典:令和2年度 10月 応用情報技術者試験 問29
全年度から出題。10問で実力を判定します。登録不要。
出典:令和2年度 10月 応用情報技術者試験 問29(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方