IPA過去問ドリル

平成22年度 秋期 基本情報技術者試験 午前 問31

テクノロジ/データベース

"商品"表に対してデータの更新処理が正しく実行できるUPDATE文はどれか。ここで,"商品"表は次のCREATE文で定義されている。 CREATE TABLE 商品 (商品番号 CHAR(4),商品名 CHAR(20),仕入先番号 CHAR(6),単価 INT, PRIMARY KEY(商品番号)) 商品(商品番号,商品名,仕入先番号,単価):S001-A-XX0001-18000,S002-A-YY0002-20000,S003-B-YY0002-35000,S004-C-ZZ0003-40000,S005-C-XX0001-38000 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成22年度 秋期 基本情報技術者試験 午前 問31

正解:エ

解説

"商品"表では商品番号が主キーとして定義されているため,一意性制約(重複禁止)とNOT NULL制約が課されます。商品名はキー制約のない一般の列なので,単純にSET句で値を書き換えるUPDATE文は問題なく実行できます。

選択肢ごとの解説

  • 誤り。既にS001という商品番号が存在するため,S002の商品番号をS001に変更すると主キーの重複(一意性制約違反)になり,実行できません。
  • 誤り。商品名='C'に該当する行はS004とS005の2行あるため,両方の商品番号を同じS006に変更しようとすると主キーが重複してしまい,実行できません。
  • 誤り。商品番号は主キーであるためNOT NULL制約が課されており,NULLに更新することはできません。
  • 正しい。商品名はキー制約のない列なので,該当する1行の商品名を書き換えるこのUPDATE文は問題なく実行できます。
基本情報技術者の過去問を演習モードで解く