データベース

基本情報技術者試験データ操作言語」の問題

テクノロジ系データベース難易度:easy
SQLの `UPDATE 商品 SET 価格 = 価格 * 1.1 WHERE 分類 = '食品'` を実行したときに起こることとして正しいものはどれか。
分類が食品の行が新規に追加され価格が1.1倍で登録される
分類が食品の行が表から削除される
分類が食品の既存の行の価格が現在値の1.1倍に更新される
全ての行の価格が分類にかかわらず1.1倍に更新される
正解
分類が食品の既存の行の価格が現在値の1.1倍に更新される

UPDATEは既存行の指定列を更新する操作であり、SET 価格=価格*1.1 で現在の価格を1.1倍にする。WHERE 分類='食品' により対象は食品の行に限られるため、食品の既存行の価格が1.1倍に更新され正しい。

?選択肢ごとの解説

ア ×行を新規追加するのはINSERT文の役割であり、UPDATEは既存行を変更するだけで行数は増えない。
イ ×行を削除するのはDELETE文の役割であり、UPDATEは行を消さず列値を書き換える。
ウ ○UPDATEは既存行の指定列を更新する操作であり、SET 価格=価格*1.1 で現在の価格を1.1倍にする。WHERE 分類='食品' により対象は食品の行に限られるため、食品の既存行の価格が1.1倍に更新され正しい。
エ ×全行を更新するのはWHERE句がない場合であり、本文はWHERE 分類='食品'で対象を食品に限定している。

くわしく

データ操作言語(DML)は INSERT(追加)・UPDATE(変更)・DELETE(削除)・SELECT(参照)から成る。UPDATE は既存行の列値を書き換える操作で、WHERE 句を省くと全行が対象になる。SET 句で列=式の形で新しい値を指定する点も重要である。

本番での押さえどころ

試験のコツ

DML の動詞で機能を即断する: INSERT=追加、UPDATE=変更、DELETE=削除。WHERE があれば対象行が限定される点を確認する。

覚え方

UPDATE=『上書き(更新)』。SET で新値、WHERE で対象、と二点をセットで読む。

よくある誤り

UPDATE・INSERT・DELETE の役割を取り違える、またはWHERE句を見落として全行更新と誤解する誤りが多い。

データベースの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0246

【基本情報技術者試験】データ操作言語の問題 — 解答・解説|ukamiru 過去問