2026年(令和8年) 基本情報技術者 科目A 問7

次のSQL文によって定義され、値が格納されている“商品”表に対して、制約違反で実行エラーとなるSQL文はどれか。

[SQL文]
 CREATE TABLE 商品
  (商品コード CHAR(4) PRIMARY KEY, 商品名 VARCHAR(21),
   仕入先コード CHAR(4), 仕入単価 INT, 在庫数 INT)

 ア  DELETE FROM WHERE 仕入先コード IS NULL
 イ  INSERT INTO 商品 VALUES (‘A555’, ‘空気清浄機’, ‘S005’, 6000, 5)
 ウ  UPDATE 商品 SET 商品コード = ‘A666’ WHERE 商品コード = ‘A444’
 エ  UPDATE 商品 SET 商品コード = ‘A777’ WHERE 在庫数 >= 20


答え エ


解説

 ア  DELETE FROM WHERE 仕入先コード IS NULL は、商品コードがNULLの行を削除するSQL文で問題なく実行できる。
 イ  INSERT INTO 商品 VALUES (‘A555’, ‘空気清浄機’, ‘S005’, 6000, 5) は、商品コードA555の空気清浄機の行を追加するSQL文で問題なく実行できる。
 ウ  UPDATE 商品 SET 商品コード = ‘A666’ WHERE 商品コード = ‘A444’ は、洗濯機の商品コードA444をA666に変更するSQL文で問題なく実行できる。
 エ  UPDATE 商品 SET 商品コード = ‘A777’ WHERE 在庫数 >= 20 は、在庫す数が20以上のデジタルカメラと洗濯機の商品コードをA777に変更するSQL文で、これを実行するとユニークでないといけない主キー(PRIMARY KEY)の商品コードが同じものが複数の商品に割り当てられるので実行エラーになる。


キーワード
・一意性制約

キーワードの解説
  • 一意性制約
    データベースにおいて同じ列に重複するデータを登録できないようにするルールで、設定した列に、すでに登録されている値と同じ値を新たに追加または更新しようとするとエラーが発生します。

もっと、「」について調べてみよう。

戻る 一覧へ 次へ