
基本情報技術者試験 令和8年度 公開問題 科目A、全20問のうちの問7。
出典:令和8年度 基本情報技術者試験 公開問題 科目A 問7(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
答えと解説を開く
正解はエです。
商品コードは
ほかの選択肢が違う理由
- ア仕入先コードが
NULL の 行 (A333) を 消すだけです。 消す操作で 主キーの 制約に 触れる ことは ありません。 - イA555 は
まだ 無い 商品コードなので、 重ならずに 追加できます。 - ウA444 の
1 行だけを、まだ 無い A666 に 変えます。 重なりは 起きません。
仕組み
主キーは、
UPDATE は