過去問解きまくり研究所 ホーム

平成25年度 春期 午前Ⅱ 問11

データ操作

ビューに関する問題

三つの表“取引先”,“商品”,“注文”を基底表とするビュー“注文123”を操作する SQL 文のうち,実行できるものはどれか。ここで,各表の列のうち下線のあるものを主キーとする。

取引先

取引先ID名称住所
111中央貿易東京都中央区
222上野商会東京都台東区
333目白商店東京都豊島区

商品

商品番号商品名価格
111スパナ1,000
123レンチ1,300
313ドライバ800

注文

注文番号注文日取引先ID商品番号数量
12013-04-171111113
22013-04-182221234
32013-04-191113133
42013-04-203331232

〔ビュー“注文123”の定義〕

CREATE VIEW 注文123 AS
  SELECT 注文番号, 取引先.名称 AS 取引先名, 数量
    FROM 注文, 取引先, 商品
    WHERE 注文.商品番号 = '123'
      AND 注文.取引先ID = 取引先.取引先ID
      AND 注文.商品番号 = 商品.商品番号
答えと解説を見る

✓ これが正解エUPDATE 注文123 SET 数量 = 3 WHERE 取引先名 = '目白商店'

解説

ビューの列名だけで書かれているのは、数量を更新する UPDATE 文です。

ビューに対する SQL 文では、ビューの定義で選択項目にした列だけを、その列名で使えます。ビュー注文123の列は、注文番号、取引先名(取引先.名称に付けた別名)、数量の三つです。UPDATE 注文123 SET 数量 = 3 WHERE 取引先名 = '目白商店' は、更新する列も条件の列もビューの列名で書かれています。ビューの行を基底表にたどると、目白商店の商品123の注文は注文番号4の1行だけで、更新する数量もこの行の注文表の列に一つだけ対応します。ビューを操作する文を見るときは、まずビューの列の一覧を書き出し、文に出てくる列名と突き合わせると判断できます。

ほかの選択肢はなぜ違うのか

出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問11

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)