“商品”表のデータが次の状態のとき,〔ビュー定義〕で示すビュー“収益商品”の行数が減少する更新処理はどれか。
商品
商品コード|品名|型式|売値|仕入値/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になります。
条件を満たさなくなるので、ビューは1行に減ります。
2:× S003の仕入値を150,000にすると、差額は50,000になります。
S003がビューに加わるので、行数は3行に増えます。
3:× S005の売値を130,000にすると、差額は50,000です。
条件を満たしたままなので、行数は変わりません。
4:× S005の仕入値を90,000にすると、差額は50,000です。
条件を満たしたままなので、行数は変わりません。
【ポイント】
ビューは基の表から条件で抽出した仮想的な表です。
基の表を更新すると、その結果がビューにもそのまま反映されます。