応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験日:2025年4月20日(あと1日)

応用情報技術者試験 令和5年秋 午前問28 解説付き過去問

問題

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

正解

解説

この問題は、「更新可能なビュー(View)」を作成するSQL文として正しいものを選ぶ問題です。

  1. ビューとは
  2. ビューは、SELECT文の結果に対して名前を付けた仮想的な表です。ビューを使うことで、複雑なクエリ結果を簡単に再利用できます。

  3. 更新可能なビューの条件
  4. ビューが更新可能であるためには、次のような条件を満たす必要があります:

    1. 1つの基底表(FROM句に1つのテーブルのみ)から選択している
    2. GROUP BYや集約関数(SUM、AVGなど)を使用していない
    3. DISTINCTを使用していない
    4. サブクエリや結合を含まない

  5. 各SQL文の確認
  6. 以下に各文を検討します:

    • 商品単価 > 1000 で抽出するビュー
      これは単純なWHERE句による抽出で、1つの基底表を参照し、GROUP BYや集約関数を使っていないため、更新可能なビューになります。

    • DISTINCTを含むビュー
      DISTINCTは行の重複を除外するため、更新対象の行が特定できず、更新はできません。

    • SUM関数を使ったビュー
      集約関数SUMとGROUP BYを使用しているため、元の行に対応しない結果が生成され、更新はできません。

    • AVG関数を使ったビュー
      集約関数AVGを使用しているため、更新はできません。

したがって、更新可能なビューを作成しているのは、商品単価 > 1000 を条件に商品表から抽出したビューです。