本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成24年度 秋期 応用情報技術者試験問題と解説

問28

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

R┌──┬──┬──┬──┐
 │ A │ B │ C │ D │
 ┝━━┿━━┿━━┿━━┥
 │AA01│BB01│CC01│DD01│
 ├──┼──┼──┼──┤
 │AA01│BB02│CC02│NULL│
 ├──┼──┼──┼──┤
 │AA02│BB01│NULL│DD03│
 ├──┼──┼──┼──┤
 │AA02│BB03│NULL│NULL│
 └──┴──┴──┴──┘

ア DELETE FROM R WHERE A = ‘AA01’ AND B = ‘BB02’

イ INSERT INTO R(A, B, C, D) VALUES (‘AA01’, NULL, ‘DD01’, ‘EE01’)

ウ INSERT INTO R(A, B, C, D) VALUES (NULL, NULL, ‘AA01’, ‘BB02’)

エ UPDATE R SET A = ‘AA02’ WHERE A = ‘AA01’


正解


解説

ア A = ‘AA01’ AND B = ‘BB02’ のレコード、つまりR表の2行目が削除される。

イ A = ‘AA01’ AND B = NULL のレコードが挿入される。

ウ A = NULL AND B = NULL のレコードが挿入される。

エ 正しい。A = ‘AA01’のレコード、つまりR表の1行目と、2行目の行のAの値が AA02 に更新される。これによって、R表の1行目と、3行目がともに、
 A = ‘AA02’ B = ‘BB01’となり、UNIQUE制約に違反することになる。

問27 目次 問29