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

応用情報技術者 2023年 秋期 午前2 問28


問題文

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

選択肢

ア:
CREATE VIEW 高額商品(商品番号, 商品名, 商品単価)
AS SELECT 商品番号, 商品名, 商品単価 FROM 商品 WHERE 商品単価 > 1000
(正解)
イ:
CREATE VIEW 受注商品(商品番号)
AS SELECT DISTINCT 商品番号 FROM 受注
ウ:
CREATE VIEW 商品受注(商品番号, 受注数量)
AS SELECT 商品番号, SUM(受注数量) FROM 受注 GROUP BY 商品番号
エ:
CREATE VIEW 商品平均受注数量(平均受注数量)
AS SELECT AVG(受注数量) FROM 受注

🔒 解説は解答すると表示されます

更新可能なビュー定義【午前2解説】

正解の理由

アのSQL文は「商品」テーブルから商品番号、商品名、商品単価を単純に抽出し、WHERE句で条件を付けているだけです。基底表が更新可能であれば、このビューも更新可能です。一方、他の選択肢はDISTINCTやSUM、AVGなどの集約関数を使っており、これらはビューの更新を制限します。

解法ステップ

  1. ビューの定義を確認し、集約関数(SUM、AVGなど)が使われているか確認する。
  2. DISTINCT句が使われているかをチェックする。
  3. 基底表が単純に選択されているかを判断する。
  4. 条件句(WHERE)は更新可能ビューに影響しないため、無視してよい。
  5. 以上の条件を満たすSQL文を選ぶ。

選択肢別の誤答解説

  • イ: DISTINCTを使っているため、更新可能なビューではありません。
  • ウ: SUMという集約関数を使っているため、更新不可です。
  • エ: AVGという集約関数を使っているため、更新不可です。

よくある誤解

集約関数やDISTINCTを使っても更新可能なビューになると誤解しがちですが、これらはビューの更新を不可能にします。単純なSELECT文であることが更新可能の条件です。

補足コラム

更新可能なビューとは、ビューを通じて基底表のデータをINSERT、UPDATE、DELETEできるビューのことです。一般的に、単純なSELECT文(集約関数やDISTINCTを含まない)で作成されたビューが更新可能とされます。複雑なビューは更新不可となり、ビューの更新を試みるとエラーになります。

FAQ

Q: なぜ集約関数を使うとビューは更新不可になるのですか?
A: 集約関数は複数行のデータを1行にまとめるため、どの基底表の行を更新すべきか特定できなくなるからです。
Q: WHERE句があってもビューは更新可能ですか?
A: はい。WHERE句は単に表示する行を絞るだけなので、基底表が更新可能ならビューも更新可能です。

関連キーワード: 更新可能ビュー、SQLビュー、集約関数、DISTINCT, 基底表、CREATE VIEW
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する→

すぐに利用可能!

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

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