平成25年度 春期 データベーススペシャリスト試験 午前II 問11
【問題11】
三つの表"取引先"、"商品"、"注文"を基底表とするビュー"注文 123″を操作するSQL文のうち、実行できるものはどれか。ここで、各表のうち下線のあるものを主キーとする。
DELETE FROM 注文 123 WHERE 取引先 ID = '111’
INSERT INTO 注文 123 VALUES (8, '目白商店’, 'レンチ’, 3)
SELECT 取引先.名称 FROM 注文 123
UPDATE 注文 123 SET 数量 = 3 WHERE 取引先名 = '目白商店’
【解説】
ア: DELETE FROM 注文 123 WHERE 取引先 ID = '111’
誤り。ビュー「注文 123」は、基底表「注文」、「取引先」、「商品」を基にしています。ビューの内容は単に基底表に対する参照であり、複数の表に結合しているため、ビューに対して直接削除操作は実行できません。
イ: INSERT INTO 注文 123 VALUES (8, '目白商店’, 'レンチ’, 3)
誤り。ビュー「注文 123」には、「取引先」表の「取引先 ID」と「名称」、「商品」表の「商品番号」と「商品名」および「注文」表の「数量」が含まれています。INSERT操作は通常、基底表に対して行うものであり、ビューへの挿入は制限されています。
ウ: SELECT 取引先.名称 FROM 注文 123
誤り。ビュー「注文 123」には「取引先.名称」のカラムは存在しません。正しくは「取引先名」や「取引先ID」など、適切なカラム名を参照する必要があります。
エ: UPDATE 注文 123 SET 数量 = 3 WHERE 取引先名 = '目白商店’
正しい。ビュー「注文 123」には「取引先名」と「数量」のカラムが含まれており、これに対するUPDATE操作は適切に実行できます。
【答え】
エ: UPDATE 注文 123 SET 数量 = 3 WHERE 取引先名 = '目白商店’
出典:平成25年度 春期 データベーススペシャリスト試験 午前II 問11