“商品”表のデータが次の状態のとき,〔ビュー定義〕で示すビュー“収益商品”の行数が減少する更新処理はどれか。
商品
/商品コード|品名|型式|売値|仕入値/S001|T|T2003|150,000|100,000/S003|S|S2003|200,000|170,000/S005|R|R2003|140,000|80,000
〔ビュー定義〕
CREATE VIEW 収益商品
AS SELECT * FROM 商品
WHERE 売値 - 仕入値 >= 40000
正答1
解説
正解は1です。
この問題は、ビューの定義条件と表のデータから、更新後にビューの行数がどう変わるかを判断するものです。
ビュー“収益商品”は、売値-仕入値が40,000以上の商品だけを取り出します。
【計算】
現在、S001は150,000-100,000=50,000なので、ビューに含まれます。
S003は200,000-170,000=30,000なので、ビューに含まれません。
S005は140,000-80,000=60,000なので、ビューに含まれます。
現在のビューの行数は2行です。
【選択肢別解説】
1:○ S001の売値を130,000にすると、130,000-100,000=30,000になります。
40,000未満になってビューから外れるので、行数は2行から1行に減少します。
2:× S003の仕入値を150,000にすると、200,000-150,000=50,000になります。
ビューの条件を満たすようになるので、行数は3行に増えます。
3:× S005の売値を130,000にすると、130,000-80,000=50,000です。
条件を満たしたままなので、行数は変わりません。
4:× S005の仕入値を90,000にすると、140,000-90,000=50,000です。
これも条件を満たしたままなので、行数は変わりません。
【ポイント】
ビューは実表のデータから条件に合う行をその都度取り出す仮想の表です。
実表を更新すると、ビューの内容もそれに応じて変わります。