컬럼명 기술 생략 형태
INSERT INTO [스키마.]테이블명
VALUES (값1, 값2, ...);
컬럼명은 기술하지 않지만 VALUES절에는 테이블의 컬럼 순서대로 해당 컬럼 값을 기술해야 하는 형태다. VALUES 절에 나열하는 컬럼 값의 순서는 “SELECT * FROM 입력할 테이블”을 실행했을 때 조회되는 컬럼 순서다. 즉 테이블을 생성할 때 기술했던 컬럼 순서대로 값을 나열하면 된다. 물론 입력할 값의 데이터 타입과 해당 컬럼의 데이터 타입을 맞춰야 한다.
입력
INSERT INTO ex3_1
VALUES ('GHI', 10, SYSDATE);
결과
1개 행 이(가) 삽입되었습니다.
컬럼명을 기술하지 않는다는 것은 테이블에 있는 모든 컬럼에 값을 입력한다는 의미다. ex3_1 테이블을 보면 col1, col2, col3 순으로 컬럼을 만들었으므로 VALUES절에 이 순서대로 입력될 값을 나열했고 데이터 타입도 맞춰준 것이다.
입력
INSERT INTO ex3_1 (col1, col2 )
VALUES ('GHI', 20);
결과
1개 행 이(가) 삽입되었습니다.
입력
INSERT INTO ex3_1
VALUES ('GHI', 30);
결과
SQL 오류: ORA-00947: 값의 수가 충분하지 않습니다.
ex3_1 테이블에는 총 3개의 컬럼이 있고 입력할 컬럼을 명시하지 않았으므로 VALUES 절에는 3개의 값을 나열해야 하는데 2개만 나열했기 때문에 오류가 발생한 것이다.