四つの表“注文”、“顧客”、“商品”、“注文明細”がある。
これらの表から、次のビュー“注文一覧”を作成する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」について調べてみよう。
戻る
一覧へ
次へ
|