基本情報技術者試験 令和8年度 科目A 公開問題 問7
次のSQL 文によって定義され、値が格納されている"商品"表に対して、制約違反で実行エラーとなるSQL 文はどれか。
【SQL文】 CREATE TABLE 商品 (商品コード CHAR(4) PRIMARY KEY, 商品名 VARCHAR(21), 仕入先コード CHAR(4), 仕入単価 INT, 在庫数 INT)

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】エ
商品コードにはPRIMARY KEY、すなわち主キー制約が設定されています。主キーの値は、表の各行を一意に識別するため、重複できず、NULLにもできません。
エでは、在庫数が20以上の行の商品コードを全てA777に更新します。該当するのは、在庫数が50のA222と、在庫数が20のA444の2行です。更新後は両方の商品コードがA777となり、主キーの値が重複します。このため、主キー制約に違反して実行エラーとなります。
アは誤りです。仕入先コードがNULLであるA333の行を削除する処理です。行の削除によって主キーが重複したりNULLになったりすることはないので、正常に実行できます。
イは誤りです。A555という新しい商品コードの行を追加します。既存の商品コードA111、A222、A333、A444のいずれとも重複せず、主キーもNULLではないので、制約違反にはなりません。
ウは誤りです。A444をA666に変更します。A666は既存の主キー値と重複しないため、正常に実行できます。
【ポイント】 PRIMARY KEYには、一意性を保証するUNIQUEと、NULLを禁止するNOT NULLの性質があります。 UPDATEでは、WHERE句に該当する行が複数ある場合、更新後の値同士が重複しないかも確認します。
出典:令和8年度 基本情報技術者試験 科目A 公開問題 問7
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の20問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる