データベース
令和8年度 基本情報技術者試験 科目A 公開問題 問7
次の SQL 文によって定義され,値が格納されている“商品”表に対して,制約違反で実行エラーとなる SQL 文はどれか。
〔SQL 文〕
CREATE TABLE 商品
(商品コード CHAR(4) PRIMARY KEY, 商品名 VARCHAR(21),
仕入先コード CHAR(4), 仕入単価 INT, 在庫数 INT)
商品
| 商品コード | 商品名 | 仕入先コード | 仕入単価 | 在庫数 |
|---|---|---|---|---|
| A111 | テレビ | S001 | 75,000 | 0 |
| A222 | デジタルカメラ | S002 | 50,000 | 50 |
| A333 | DVDプレーヤ | NULL | NULL | NULL |
| A444 | 洗濯機 | S004 | 45,000 | 20 |
- ア DELETE FROM 商品 WHERE 仕入先コード IS NULL
- イ INSERT INTO 商品 VALUES ('A555', '空気清浄機', 'S005', 60000, 50)
- ウ UPDATE 商品 SET 商品コード = 'A666' WHERE 商品コード = 'A444'
- エ UPDATE 商品 SET 商品コード = 'A777' WHERE 在庫数 >= 20
出典:令和8年度 基本情報技術者試験 科目A 公開問題 問7
答えと解説を見る
正解:エ
覚える知識
主キー制約違反の判定(UPDATE文)
主キーは行を一意に識別するため、更新・挿入の結果として値が重複する操作は制約違反になる。
この問題で必要なこと
主キー列の値が重複するとエラーになる。エは在庫数が20以上のA222とA444の両方を'A777'に更新するため主キーが重複する。
ひっかけ
1行だけを更新するウや、NULLを含む行を削除するア、新規コードを挿入するイは正常に実行できるため、複数行更新による重複に気づかせない。
この知識の出題:本試験系 2 回・免除試験 4 回(公開問題での観測値)