戦国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 情報処理技術者試験対策アプリ

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