平成20年 春期 ソフトウェア開発技術者 午前 問65

“注文”表と“製品”表に対して、次のSQL文を実行したときに得られる結果はどれか。

 SELECT 製品名、数量 FROM 注文、製品
      WHERE 注文.製品コード=製品.製品コード

注文
日付 製品コード 数量
4月10日 P2 120
4月15日 P1 100
4月22日 P4 50
4月30日 P8 80
5月 6日 P1 100
5月 8日 P3 70
製品
製品コード 製品名
P1 PC
P2 テレビ
P3 掃除機
P4 冷蔵庫
P5 エアコン
P6 電話機
P7 時計

 ア
製品名 数量
テレビ 120
PC 100
冷蔵庫 50
掃除機 70
 イ
製品名 数量
テレビ 120
PC 200
冷蔵庫 50
掃除機 70
 ウ
製品名 数量
テレビ 120
PC 100
冷蔵庫 50
PC 100
掃除機 70
 エ
製品名 数量
テレビ 120
PC 100
冷蔵庫 50
Null 80
PC 100
掃除機 70


答え ウ


解説
問題のSQL文を見ると、1行目の
 SELECT 製品名、数量 FROM 注文、製品
は、“注文”表と“製品”表から、「製品名」「数量」のデータを選択するという意味で、2行目の
 WHERE 注文.製品コード=製品.製品コード
は、選ぶ条件として2つの表の「製品コード」が等しいときとなっています。
“注文”表を上から順に辿っていくと、
1行目の製品コード=P2は“製品”表にあるので選択されます。(テレビ, 120)
2行目の製品コード=P1は“製品”表にあるので選択されます。(PC, 100)
3行目の製品コード=P4は“製品”表にあるので選択されます。(冷蔵庫, 50)
4行目の製品コード=P8は“製品”表にないので選択されません。
5行目の製品コード=P1は“製品”表にあるので選択されます。(PC, 100)
6行目の製品コード=P3は“製品”表にあるので選択されます。(掃除機, 70)
これで、出力される表は

製品名 数量
テレビ 120
PC 100
冷蔵庫 50
PC 100
掃除機 70
(ウ)になります。
製品名=PCが2ヶ所に出現(重複)しますが、重複した行をまとめるという指定がないので、得られる表はこのままです。


キーワード
・SQL

キーワードの解説
  • SQL
    リレーショナルデータベースマネジメントシステム(RDBMS)において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)です。
    SQLを用いることで、表の定義やデータ操作、関係演算など、リレーショナルデータベースに関するほとんどの操作を機械可読なテキストとして記述できます。
    なお、SQLは何かの略語ではありません。

もっと、「SQL」について調べてみよう。

戻る 一覧へ 次へ