학습용 기출·복원자료 분류 확인SQLD · 2025년 58회 SQL 기본 및 활용 · 50번
다음 T1 테이블에 데이터를 삽입하는 SQL 중 오류 없이 실행되는 것은?
DBMS: Oracle
CREATE TABLE T1 (
COL1 NUMBER DEFAULT 9 PRIMARY KEY,
COL2 VARCHAR2(10) NOT NULL
);
1
INSERT INTO T1 VALUES (10);
오답 이유‘INSERT INTO T1 VALUES (10);’ 구문은 ‘INSERT INTO T1 (COL2) VALUES ('A');’과 실행 결과나 적용 조건이 다르다. COL2가 NOT NULL이므로 반드시 값을 넣어야 하며, COL1을 생략하고 COL2만 INSERT 할 경우 COL1에는 DEFAULT 값인 9가 자동 입력되어 PK 제약조건을 만족하게 된다. 따라서 1번 보기 ‘INSERT INTO T1 VALUES (10);’의 적용 여부를 문제 조건과 대조해야 한다.
2
INSERT INTO T1 (COL1, COL2) VALUES (NULL, 'A');
오답 이유‘INSERT INTO T1 (COL1, COL2) VALUES (NULL, 'A');’ 구문은 ‘INSERT INTO T1 (COL2) VALUES ('A');’과 실행 결과나 적용 조건이 다르다. COL2가 NOT NULL이므로 반드시 값을 넣어야 하며, COL1을 생략하고 COL2만 INSERT 할 경우 COL1에는 DEFAULT 값인 9가 자동 입력되어 PK 제약조건을 만족하게 된다. 따라서 2번 보기 ‘INSERT INTO T1 (COL1, COL2) VALUES (NULL, 'A');’의 적용 여부를 문제 조건과 대조해야 한다.
3
INSERT INTO T1 (COL2) VALUES ('A');
정답 근거COL2가 NOT NULL이므로 반드시 값을 넣어야 하며, COL1을 생략하고 COL2만 INSERT 할 경우 COL1에는 DEFAULT 값인 9가 자동 입력되어 PK 제약조건을 만족하게 된다. 따라서 3번 보기 ‘INSERT INTO T1 (COL2) VALUES ('A');’의 적용 여부를 문제 조건과 대조해야 한다.
4
INSERT INTO T1 (COL1) VALUES (10);
오답 이유‘INSERT INTO T1 (COL1) VALUES (10);’ 구문은 ‘INSERT INTO T1 (COL2) VALUES ('A');’과 실행 결과나 적용 조건이 다르다. COL2가 NOT NULL이므로 반드시 값을 넣어야 하며, COL1을 생략하고 COL2만 INSERT 할 경우 COL1에는 DEFAULT 값인 9가 자동 입력되어 PK 제약조건을 만족하게 된다. 따라서 4번 보기 ‘INSERT INTO T1 (COL1) VALUES (10);’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘INSERT INTO T1 (COL2) VALUES ('A');’입니다. COL2가 NOT NULL이므로 반드시 값을 넣어야 하며, COL1을 생략하고 COL2만 INSERT 할 경우 COL1에는 DEFAULT 값인 9가 자동 입력되어 PK 제약조건을 만족하게 된다.