ア |
DELETE FROM R WHERE A = ‘AA01’ AND B = ‘BBO2’は、表の3行目を削除するSQL文であるが、これを行ってもUNIQUE制約には違反しない。
A |
B |
C |
D |
AA01 |
BB01 |
CC01 |
DD01 |
AA02 |
BB01 |
NULL |
DD03 |
AA02 |
BB03 |
NULL |
NULL |
|
イ |
INSERT INTO R(A, B, C, D) VALUES (‘AAO1’, NULL, ‘DDO1’, ‘EE0l’)は、データの追加を行うSQL文であるが、これを行ってもUNIQUE制約には違反しない。
A |
B |
C |
D |
AA01 |
BB01 |
CC01 |
DD01 |
AA01 |
BB02 |
CC02 |
NULL |
AA02 |
BB01 |
NULL |
DD03 |
AA02 |
BB03 |
NULL |
NULL |
AA01 |
NULL |
DD01 |
EE01 |
|
ウ |
INSERT INTO R(A, B, C, D) VALUES (NULL, NULL, ‘AAO1’, ‘BB02’)は、データの追加を行うSQL文であるが、これを行ってもUNIQUE制約には違反しない。
A |
B |
C |
D |
AA01 |
BB01 |
CC01 |
DD01 |
AA01 |
BB02 |
CC02 |
NULL |
AA02 |
BB01 |
NULL |
DD03 |
AA02 |
BB03 |
NULL |
NULL |
NULL |
NULL |
AA01 |
BB02 |
|
エ |
UPDATE R SET A = ‘AAO2’ WHERE A = ‘AAO1’を行うと、表の2行目と4行目のAとBが同じ値になり、UNIQUE制約に違反します。
A |
B |
C |
D |
AA02 |
BB01 |
CC01 |
DD01 |
AA02 |
BB02 |
CC02 |
NULL |
AA02 |
BB01 |
NULL |
DD03 |
AA02 |
BB03 |
NULL |
NULL |
|