戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2011年 秋期 午前230


問題文

更新可能なビューを作成するSQL文はどれか。ここで,SQL文中に現れる表は全て更新可能とする。

選択肢

CREATE VIEW 高額商品(商品番号、 商品名、 商品単価) 
AS SELECT 商品番号、 商品名、 商品単価 FROM 商品 WHERE 商品単価 > 1000
(正解)
CREATE VIEW 受注商品(商品番号)
AS SELECT DISTINCT 商品番号 FROM 受注
CREATE VIEW 商品受注(商品番号、 受注数量)
AS SELECT 商品番号、 SUM(受注数量) FROM 受注 GROUP BY 商品番号
AS SELECT AVG(受注数量) FROM 受注

更新可能なビューを作成するSQL文はどれか【午前2 解説】

要点まとめ

  • 結論:更新可能なビューは単純なSELECT文で作成され、集約関数やDISTINCTを含まないものが該当します。
  • 根拠:ビューの更新可能性は、基になるテーブルの一意性や集約関数の有無、GROUP BYの使用などで制限されます。
  • 差がつくポイント:集約関数やDISTINCTを含むビューは更新不可であるため、これらを含まないビューを選ぶことが重要です。

正解の理由

は、商品テーブルから商品番号、商品名、商品単価を単純に抽出し、WHERE句で条件を付けただけのビューです。基になるテーブルが更新可能であれば、このビューも更新可能です。
一方、イはDISTINCTを使っており、ウはSUMとGROUP BYを使い、エはAVGを使っているため、これらは集約や重複排除を伴い、更新可能なビューとはなりません。

よくある誤解

ビューにWHERE句があると更新できないと思い込むことがありますが、WHERE句は更新可能性に影響しません。
また、集約関数やDISTINCTがあると更新不可になる点を見落としがちです。

解法ステップ

  1. ビューの定義を確認し、集約関数(SUM, AVGなど)が含まれていないか確認する。
  2. DISTINCTやGROUP BYが使われていないかをチェックする。
  3. 単純なSELECT文であれば更新可能と判断する。
  4. 各選択肢のSQL文を比較し、条件に合うものを選ぶ。

選択肢別の誤答解説

  • イ:DISTINCTを使っているため、重複排除が行われており更新不可です。
  • ウ:SUM関数とGROUP BYを使っているため、集約ビューで更新できません。
  • エ:AVG関数を使った集約ビューであり、更新は不可能です。

補足コラム

更新可能なビューは、基になるテーブルの行に一対一で対応し、集約や重複排除を行わない単純なSELECT文で作成されます。
SQL標準や各DBMSの仕様により細かい制約は異なりますが、基本的な考え方は共通しています。

FAQ

Q: WHERE句があるビューは更新できないのですか?
A: いいえ、WHERE句は更新可能性に影響しません。単純な条件指定は問題ありません。
Q: 集約関数を使ったビューはなぜ更新できないのですか?
A: 集約関数は複数行のデータをまとめるため、元の行に戻せず更新が不可能です。

関連キーワード: SQL, ビュー、更新可能ビュー、集約関数、DISTINCT, GROUP BY
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について