基本情報技術者試験 科目 A — SQL 練習問題 第 4 問 / 14
結合と条件で残る行|基本情報 SQL
「商品」表と「在庫」表に対して次の SQL を実行したとき、得られる結果は何行か。
この問題で使う表
商品
| 商品番号 | 商品名 | 分類 | 単価 |
|---|---|---|---|
| P01 | ボールペン | A | 120 |
| P02 | ノート | A | 200 |
| P03 | 消しゴム | B | 80 |
| P04 | 定規 | B | 150 |
| P05 | ホチキス | C | 500 |
5 行
在庫
| 商品番号 | 倉庫 | 在庫数 |
|---|---|---|
| P01 | W1 | 30 |
| P01 | W2 | 10 |
| P02 | W1 | 0 |
| P03 | W2 | 25 |
4 行
SELECT 商品.商品名, 在庫.倉庫
FROM 商品, 在庫
WHERE 商品.商品番号 = 在庫.商品番号
AND 在庫.在庫数 > 0解答を選ぶ
解説
正解: イ3 行
まず結合条件で「商品」と「在庫」が対応する組だけが残ります。在庫表は 4 行なので、この時点で 4 行です。
次に 在庫数 > 0 で絞ります。在庫表の P02/W1 は在庫数が 0 なので落ちます。
結果は ボールペン/W1、ボールペン/W2、消しゴム/W2 の 3 行です。
エの 20 行は、結合条件を書かなかった場合の直積 (5 × 4) の行数です。
引っかけの正体
在庫数 0 の行を「在庫がある」と数えてしまう
この問題のもとになっている解説: 表の結合 — 内部結合と外部結合
データベース分野をもっと学ぶ(おすすめ書籍)
キタミ式イラストIT塾 基本情報技術者 令和08年
きたみりゅうじ
イラスト主体で科目Aの全範囲を通読できる入門書。用語の土台を作ってから科目Bのアルゴリズムに入ると理解が速い。
Amazon で見る →
令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
栢木厚
科目Aの頻出テーマを図と語呂で押さえる入門書。参考書と問題集を兼ねるので初受験の一冊目に選びやすい。
Amazon で見る →
令和08年 基本情報技術者 パーフェクトラーニング過去問題集
山本三雄
公開問題を大量に解いて仕上げるための問題集。擬似言語の読解に慣れた後、本番形式で時間配分を試す段階で使う。
Amazon で見る →
本セクションはAmazonアソシエイトのリンクを含みます。