応用情報技術者試験 令和5年秋 午前問28 解説付き過去問
問題
更新可能なビューを作成するSQL文はどれか。
ここで、SQL文中に現れる基底表は全て更新可能とする。
正解
解説
この問題は、「更新可能なビュー(View)」を作成するSQL文として正しいものを選ぶ問題です。
- ビューとは
- 更新可能なビューの条件
- 1つの基底表(FROM句に1つのテーブルのみ)から選択している
- GROUP BYや集約関数(SUM、AVGなど)を使用していない
- DISTINCTを使用していない
- サブクエリや結合を含まない
- 各SQL文の確認
- 商品単価 > 1000 で抽出するビュー
これは単純なWHERE句による抽出で、1つの基底表を参照し、GROUP BYや集約関数を使っていないため、更新可能なビューになります。 - DISTINCTを含むビュー
DISTINCTは行の重複を除外するため、更新対象の行が特定できず、更新はできません。 - SUM関数を使ったビュー
集約関数SUMとGROUP BYを使用しているため、元の行に対応しない結果が生成され、更新はできません。 - AVG関数を使ったビュー
集約関数AVGを使用しているため、更新はできません。
ビューは、SELECT文の結果に対して名前を付けた仮想的な表です。ビューを使うことで、複雑なクエリ結果を簡単に再利用できます。
ビューが更新可能であるためには、次のような条件を満たす必要があります:
以下に各文を検討します:
したがって、更新可能なビューを作成しているのは、商品単価 > 1000 を条件に商品表から抽出したビューです。