データベース
基本情報技術者試験 科目A免除 修了試験 20150726 実施分 問29
“商品”表に対してデータの更新処理が正しく実行できる UPDATE 文はどれか。ここで,“商品”表は次の CREATE 文で定義されている。
CREATE TABLE 商品
(商品番号 CHAR(4), 商品名 CHAR(20), 仕入先番号 CHAR(6), 単価 INT,
PRIMARY KEY(商品番号))
商品表
| 商品番号 | 商品名 | 仕入先番号 | 単価 |
|---|---|---|---|
| S001 | A | XX0001 | 18000 |
| S002 | A | YY0002 | 20000 |
| S003 | B | YY0002 | 35000 |
| S004 | C | ZZ0003 | 40000 |
| S005 | C | XX0001 | 38000 |
- ア UPDATE 商品 SET 商品番号 = 'S001' WHERE 商品番号 = 'S002'
- イ UPDATE 商品 SET 商品番号 = 'S006' WHERE 商品名 = 'C'
- ウ UPDATE 商品 SET 商品番号 = NULL WHERE 商品番号 = 'S002'
- エ UPDATE 商品 SET 商品名 = 'D' WHERE 商品番号 = 'S003'
出典:基本情報技術者試験 科目A免除 修了試験 20150726 実施分 問29
答えと解説を見る
正解:エ
覚える知識
主キー制約違反の判定(UPDATE文)
主キー列は一意でNULLを含められないため、更新後に重複やNULLが生じるUPDATEは失敗する。
この問題で必要なこと
主キーは重複もNULLも許されない。商品番号を既存値に変える、NULLにする、複数行を同じ値にするUPDATEは制約違反。
ひっかけ
商品名が重複する更新は許されることを見落とさせ、主キーの重複・NULL・複数行更新で誤らせる。
この知識の出題:本試験系 2 回・免除試験 4 回(公開問題での観測値)