データベース

基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問28

R 表に,(A, B) の 2 列で一意にする制約(UNIQUE 制約)が定義されているとき,R 表に対する SQL 文のうち,この制約に違反するものはどれか。ここで,R 表には主キーの定義がなく,また,全ての列は値が決まっていない場合(NULL)もあるものとする。
R 表
ABCD
AA01BB01CC01DD01
AA01BB02CC02NULL
AA02BB01NULLDD03
AA02BB03NULLNULL
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20180128 実施分 問28(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:エ

覚える知識

主キー制約違反の判定(UPDATE文)

UNIQUE制約は、複数列の組の値が表内で重複しないことを保証し、NULLを含む組は重複とみなされない。

この問題で必要なこと

UNIQUE制約(A,B)の下で、UPDATEによりAA01,BB01の行がAA02,BB01に変わると、既存のAA02,BB01と重複して違反する。NULLを含む組は一意性の比較対象にならない。

ひっかけ

NULLを含む行のINSERT(イ・ウ)を違反と誤解する。

この知識の出題:本試験系 2 回・免除試験 4 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「主キー・外部キーと整合性制約」で学ぶ

同じ知識の過去問