次のSQL 文によって定義され,値が格納されている“商品”表に対して,制約違反で実行エラーとなるSQL 文はどれか。…
科目A 科目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', 60000, 50)
- ウUPDATE 商品 SET 商品コード = 'A666' WHERE 商品コード = 'A444'
- エUPDATE 商品 SET 商品コード = 'A777' WHERE 在庫数 >= 20
正答 エ
正答は エ。主キーの値が重複するので、制約違反になります。
商品コードは PRIMARY KEY(主キー)なので、値の重複も NULL も許されません。エの UPDATE 文は、在庫数が 20 以上の行の商品コードをすべて 'A777' に変えます。表で在庫数が 20 以上なのはA222(在庫数 50)と A444(在庫数 20)の 2 行です。2 行とも商品コードが 'A777' になり、主キーが重複するので、一意性制約の違反で実行エラーになります。
【ほかの選択肢】
ア DELETE … WHERE 仕入先コード IS NULL 誤り
解説の続きをみる続きを閉じる
→ A333 の行が削除されるだけで、制約違反は起きない
イ INSERT … ('A555', '空気清浄機', 'S005', 60000, 50) 誤り
→ A555 は表に無い値で重複しない。各列の型・長さにも合う
ウ UPDATE … SET 商品コード = 'A666' WHERE 商品コード = 'A444'
誤り→ 対象は 1 行だけで、A666 は表に無い値なので重複しない
【ポイント】
在庫数が NULL の A333 は、「在庫数 >= 20」の比較が真にならないので、エの対象にはなりません。NULL との比較は真にも偽にもならない(不明)と覚えておきます。
出典:令和8年度 基本情報技術者試験 科目A 公開問題 問7(独立行政法人情報処理推進機構)出典元ページ
最終更新日
「科目A」のほかの問題
- 2024年度(令和6年度)公開問題 科目A 問7DBMS に実装すべき原子性(atomicity)を説明したものはどれか。
- 2024年度(令和6年度)公開問題 科目A 問13アローダイアグラムで表されるプロジェクトは,完了までに最少で何日を要するか。
- 2024年度(令和6年度)公開問題 科目A 問19図は,製品の製造上のある要因の値x と品質特性の値y との関係をプロットしたものである。
- 2025年度(令和7年度)公開問題 科目A 問5ローコード開発ツールを用いたソフトウェア開発の説明はどれか。
- 2025年度(令和7年度)公開問題 科目A 問11E-R モデルにおけるエンティティの特徴はどれか。
- 2025年度(令和7年度)公開問題 科目A 問17インターネット上の生成AI サービスを利用する際に,オプトアウトを設定することはどのよう
スポンサーリンク


