戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2011年 春期 午前(科目A)31


問題文

“商品”表のデータが次の状態のとき、〔ビュー定義〕で示すビュー“収益商品”の行数が減少する更新処理はどれか。
〔ビュー定義〕 CREATE VIEW収益商品 AS SELECT * FROM商品 WHERE 売値-仕入値>= 40000
基本情報技術者 2011年 春期 午前(科目A) 問31の問題画像

選択肢

商品コードがS001の売値を130,000に更新する。(正解)
商品コードがS003の仕入値を150,000に更新する。
商品コードがS005の売値を130,000に更新する。
商品コードがS005の仕入値を90,000に更新する。

🔒 解説は解答すると表示されます

ビューと更新による行削除【午前解説】

正解の理由

正解:
ビュー定義は WHERE 売値 - 仕入値 >= 40000 です。各商品の更新後の差額を計算すると、アの更新のみがビュー該当から外すため、ビューの行数が減少します。

解法ステップ

  1. 各行の現在の利益(売値 − 仕入値)を計算する。
    • S001:
    • S003:
    • S005:
  2. ビュー該当は利益 >= 40000 の行(現状 S001, S005 の 2 行)。
  3. 各選択肢で該当行の利益が更新後にどう変わるかを計算する。
  4. 更新後にビューから外れる(該当数が減る)選択肢を選ぶ。

選択肢別の誤答解説

  • ア: 商品コード S001 の売値を 130,000 に更新すると、 で 40,000 未満になりビュー該当から外れるため行数が減少する → 正解。
  • イ: S003 の仕入値を 150,000 にすると、 で新たにビューに入るため行数は増加する(減少しない)。
  • ウ: S005 の売値を 130,000 にすると、 で依然 40,000 以上、ビューに残るため行数は変わらない。
  • エ: S005 の仕入値を 90,000 にすると、 で 40,000 以上、ビューに残るため行数は変わらない。

よくある誤解

  • 「>= と > を取り違える」:等号を見落とすと境界(40,000)の扱いを誤りやすいです。
  • 「カンマを含む数値表記で桁を誤認する」:150,000 や 100,000 を読み間違えて差額計算ミスをする。
  • 「ビューは別テーブルであり更新で古い結果が残る」と誤解する:ビューは基テーブルの現在データを反映します。

補足コラム

ビューは基礎テーブルに対する仮想的な表現であり、データを保持しません。したがって基テーブルを UPDATE するとビューの内容は即座に反映されます。本問のように WHERE によるフィルタ条件に関係する列を更新すると、行の「所属」(ビューに含まれるか否か)が変化し、ビューの行数が増減します。NULL が絡む場合は比較結果が FALSE/UNKNOWN になる点にも注意してください。

FAQ

Q: ビューは更新可能ですか?
A: 定義や DBMS によりますが、単純な SELECT * FROM 単一テーブルで WHERE のみならば基テーブルの更新は可能で、ビューには即時反映されます。
Q: 等号(>=)の境界値が 40,000 のとき、40,000 は含まれますか?
A: はい、>= は 40,000 を含むため、差額がちょうど 40,000 の場合はビューに含まれます。
Q: 更新で行数が増えることもありますか?
A: はい。条件を満たしていなかった行が更新で条件を満たすと、ビューの行数は増えます(本問の選択肢イが該当)。

関連キーワード: ビュー、CREATE VIEW、WHERE句、UPDATE、売値、仕入値、差額計算、SELECT、SQL、NULL比較
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について