학습용 기출·복원자료 분류 확인SQLD · 2024년 53회 SQL 기본 및 활용 · 31번
A는 `DEFAULT 9 PRIMARY KEY`, B는 NOT NULL, C는 NULL 허용일 때 성공하는 INSERT는?
DBMS: Oracle
CREATE TABLE T1 (
A NUMBER DEFAULT 9 PRIMARY KEY,
B NUMBER NOT NULL,
C NUMBER
);
1
INSERT INTO T1 VALUES (7, 1)
오답 이유열 목록을 생략하면 세 열의 값을 모두 제공해야 하므로 값 두 개만 쓸 수 없다. 따라서 1번 보기 ‘INSERT INTO T1 VALUES (7, 1)’의 적용 여부를 문제 조건과 대조해야 한다.
2
INSERT INTO T1(A, C) VALUES (7, 1)
오답 이유NOT NULL인 B를 생략하고 B에 기본값도 없으므로 삽입이 실패한다. 따라서 2번 보기 ‘INSERT INTO T1(A, C) VALUES (7, 1)’의 적용 여부를 문제 조건과 대조해야 한다.
3
INSERT INTO T1(B, C) VALUES (9, 1)
정답 근거A를 열 목록에서 생략하면 DEFAULT 9가 입력되고 B와 C에는 각각 9와 1이 들어간다. A의 기본값이 기존 PK와 중복되지 않는다는 조건에서는 모든 제약을 만족한다. 따라서 3번 보기 ‘INSERT INTO T1(B, C) VALUES (9, 1)’의 적용 여부를 문제 조건과 대조해야 한다.
4
INSERT INTO T1(A, B, C) VALUES (NULL, 9, 1)
오답 이유PRIMARY KEY A에는 NULL을 넣을 수 없다. 따라서 4번 보기 ‘INSERT INTO T1(A, B, C) VALUES (NULL, 9, 1)’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘INSERT INTO T1(B, C) VALUES (9, 1)’입니다. A를 열 목록에서 생략하면 DEFAULT 9가 입력되고 B와 C에는 각각 9와 1이 들어간다. A의 기본값이 기존 PK와 중복되지 않는다는 조건에서는 모든 제약을 만족한다.