過去問解きまくり研究所 ホーム

平成22年度 秋期 午前 問31

データベース

UPDATE文

"商品" 表に対してデータの更新処理が正しく実行できる UPDATE 文はどれか。ここで,"商品" 表は次の CREATE 文で定義されている。

CREATE TABLE 商品
    (商品番号 CHAR(4), 商品名 CHAR(20), 仕入先番号 CHAR(6), 単価 INT,
     PRIMARY KEY(商品番号))
商品
商品番号商品名仕入先番号単価
S001AXX000118000
S002AYY000220000
S003BYY000235000
S004CZZ000340000
S005CXX000138000
答えと解説を見る

✓ これが正解エUPDATE 商品 SET 商品名 = 'D' WHERE 商品番号 = 'S003'

解説

主キーが重ならず空にもならない更新だけ通ります。

商品表は、CREATE 文の PRIMARY KEY で商品番号を主キーとして定義されています。主キーには決まりが二つあります。同じ値が二つ以上の行に現れてはいけないことと、値が空であってはいけないことです。UPDATE 文が実行できるかどうかは、更新したあとの表がこの二つを保てるかで決まります。ですから、まず表の中身からどの行が更新の対象になるかを数え、次にその行の主キーの列が更新後にどんな値になるかを並べて確かめます。設問の表は五行あり、商品番号はすべて異なる一方、商品名には同じ値を持つ行が含まれています。判定の軸はここです。主キーの列に触れる更新なら、更新後の値がほかの行と衝突しないか、空にならないかを見ます。主キー以外の列だけを変える更新なら、この二つの決まりに触れません。

ほかの選択肢はなぜ違うのか

出典:平成22年度 秋期 基本情報技術者試験 午前 問31(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)