SkillStack
テクノロジ系7 / 20問

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

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

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

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

商品コードには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に質問できる
SkillStackで無料で始める