문제
아래 테이블에 대한 INSERT 문 중 오류가 발생하는 것은?
SQLCREATE TABLE TEST45 ( COL1 NUMBER, COL2 NUMBER, COL3 NUMBER, COL4 NUMBER );
① INSERT INTO TEST45 VALUES(1, 2, 3) ② INSERT INTO TEST45 VALUES(1, 2, 3, 4) ③ INSERT INTO TEST45 (COL1, COL2, COL3) VALUES(1, 2, 3) ④ INSERT INTO TEST45 (COL1, COL2, COL3, COL4) VALUES(1, 2, 3, 4)
정답
1번
해설
정답: 1. 컬럼 목록을 생략한 INSERT는 테이블의 전체 컬럼 수와 VALUES 값의 개수가 일치해야 하므로 3개 값만 넣으면 오류가 발생한다.
오답 풀이
- 1번: 컬럼은 4개인데 값은 3개이므로 오류가 발생한다.
- 2번: 전체 4개 컬럼에 4개 값을 넣으므로 가능하다.
- 3번: 컬럼 목록을 3개로 명시했으므로 3개 값을 넣을 수 있다.
- 4번: 컬럼 4개와 값 4개가 일치한다.
보충 개념 INSERT에서 컬럼 목록을 생략하면 테이블 정의 순서대로 모든 컬럼에 값을 제공해야 한다. 일부 컬럼만 입력하려면 컬럼 목록을 명시해야 한다.