令和5年度 秋期 応用情報技術者試験 午前 問28

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

解答・解説

正解: ア. CREATE VIEW 高額商品(商品番号, 商品名, 商品単価)
AS SELECT 商品番号, 商品名, 商品単価 FROM 商品 WHERE 商品単価 > 1000

ビューに対する更新(INSERT、UPDATE、DELETE)が、基となる実表(基底表)に直接反映できるものを 更新可能なビュー と呼びます。

ビューが更新可能であるためには、ビューの行と基底表の行が 1対1に対応 している必要があります。したがって、以下の要素を含むSELECT文で定義されたビューは元の行が特定できなくなるため 更新不可 となります。

  • DISTINCT(重複排除)
  • GROUP BY 句や HAVING 句によるグループ化
  • 集約関数(SUM、AVG、MAX、MIN、COUNT など)
  • 複数の表の結合(JOIN)や集合演算(UNIONなど)

各選択肢の解説

  • ア(正解):単一の基底表(商品)から WHERE 句での条件抽出のみを行っており、集約処理や重複排除を含まないため、更新可能です。
  • イ:DISTINCT キーワードが含まれており、重複排除が行われるため元の行が特定できず、更新不可です。
  • ウ:GROUP BY 句によるグループ化と、集約関数 SUM が使用されているため、更新不可です。
  • エ:集約関数 AVG が使用されており、ビューの1行が基底表の複数の行から計算された値となるため、更新不可です。

Spineチーム