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

四つの表“注文”、“顧客”、“商品”、“注文明細”がある。
これらの表から、次のビュー“注文一覧”を作成するSQL文はどれか。
ここで、下線の項目は主キーを表す。

注文(注文番号, 注文日, 顧客番号)
顧客(顧客番号, 顧客名)
商品(商品番号, 商品名)
注文明細(注文番号, 商品番号, 数量, 単価)

注文一覧
注文番号 注文日 顧客名 商品名 数量 単価
001 2006-01-10 佐藤 AAAA 5 5,000
001 2006-01-10 佐藤 BBBB 3 4,000
002 2006-01-15 田中 BBBB 6 4,000
003 2006-01-20 高橋 AAAA 3 5,000
003 2006-01-20 高橋 CCCC 10 1,000

 ア  CREATE VIEW 注文一覧
    AS SELECT * FROM 注文、顧客、商品、注文明細
       WHERE 注文.注文番号=注文明細.注文番号 AND
             注文.顧客番号=顧客.顧客番号 AND
             商品.商品番号=注文明細.商品番号
 イ  CREATE VIEW 注文一覧
    AS SELECT 注文.注文番号, 注文日, 顧客名, 商品名, 数量, 単価
       FROM 注文、顧客、商品、注文明細
       WHERE 注文.注文番号=注文明細.注文番号 AND
             注文.顧客番号=顧客.顧客番号 AND
             商品.商品番号=注文明細.商品番号
 ウ  CREATE VIEW 注文一覧
    AS SELECT 注文.注文番号, 注文日, 顧客名, 商品名, 数量, 単価
       FROM 注文、顧客、商品、注文明細
       WHERE 注文.注文番号=注文明細.注文番号 OR
             注文.顧客番号=顧客.顧客番号 OR
             商品.商品番号=注文明細.商品番号
 エ  CREATE VIEW 注文一覧
    AS SELECT 注文.注文番号, 注文日, 商品名, 数量, 単価
       FROM 注文、顧客、商品、注文明細
       WHERE 注文.注文番号=注文明細.注文番号 AND
             商品.商品番号=注文明細.商品番号


答え イ


解説

 ア  『AS SELECT * FROM 注文, 顧客, 商品, 注文明細』は、各表のすべての項目を出力する意味なので正しくない。
 イ  このSQL文は正しい。
 ウ  『WHERE … OR … OR …』だと、各条件にあったものをすべて出力するので正しくありません。
 エ  『AS SELECT 注文.注文番号, 注文日, 商品名, 数量, 単価』に「顧客名」がないので、顧客名が出力されないので正しくない。


キーワード
・SQL

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

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

戻る 一覧へ 次へ