더북(TheBook)

쿼리 4-3에서 이미 emp_id 값이 4인 데이터를 넣었는데, 다시 같은 값으로 데이터를 입력하니 오류가 발생했습니다. 기본 키를 생성하면 자동으로 유일 인덱스가 만들어져 중복 값 입력을 불허하는데 이를 위반한 것입니다. 이렇듯 NOT NULL과 중복 값 입력만 조심하면 테이블에 데이터를 넣는 작업은 어렵지 않게 처리할 수 있습니다.

이제 두 번째 INSERT 구문을 알아보도록 하죠.

INSERT 구문 2

INSERT INTO 테이블 명 
VALUES ( 값1, 값2, … );

 

두 번째 구문에는 컬럼을 명시한 부분이 빠져 있습니다. 컬럼을 명시하지 않았다는 것은 모든 컬럼에 데이터를 넣는다는 것을 의미하며, 이때도 VALUES 다음에는 데이터를 넣을 컬럼 순서와 데이터형을 맞춰 넣어야 합니다. 컬럼 순서는 테이블을 생성할 때 만들었던 순서와 같습니다. 순서를 모르겠다면 이전 쿼리처럼 컬럼을 명시해야 합니다. 일반적으로 INSERT 문장 작성 시, 컬럼 전체든 일부든 일일이 컬럼 명을 명시하는 것이 좋습니다. 좀 귀찮더라도 컬럼 명을 명시하는 것이 가독성 측면에서 좋기도 하고 컬럼 순서와 값을 잘못 매핑(mapping)하는 실수를 방지할 수 있기 때문입니다.

지금까지 알아본 INSERT 문장은 한 문장당 한 개의 로우를 입력하는 문장이었는데, 한 문장으로 여러 개의 로우를 입력할 수도 있습니다. INSERT 문장의 마지막 구문은 SELECT 문장과 결합된 형태입니다.

INSERT 구문 3

INSERT INTO 테이블 명 ( column1, column2, … )
SELECT 문장…
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.