データベース

令和8年度 基本情報技術者試験 科目A 公開問題 問7

次の SQL 文によって定義され,値が格納されている“商品”表に対して,制約違反で実行エラーとなる SQL 文はどれか。 〔SQL 文〕 CREATE TABLE 商品 (商品コード CHAR(4) PRIMARY KEY, 商品名 VARCHAR(21), 仕入先コード CHAR(4), 仕入単価 INT, 在庫数 INT)
商品
商品コード商品名仕入先コード仕入単価在庫数
A111テレビS00175,0000
A222デジタルカメラS00250,00050
A333DVDプレーヤNULLNULLNULL
A444洗濯機S00445,00020
  • ア 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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「主キー・外部キーと整合性制約」で学ぶ

同じ知識の過去問