INSERT 문

INSERT 문을 사용하여 데이터베이스 테이블에 레코드를 생성합니다. 다음 중 하나를 지정할 수 있습니다.

  • 새로운 레코드로 삽입할 값의 목록

  • 새로운 레코드 세트로 삽입할 다른 테이블에서 복사하는 SELECT

INSERT 문의 포맷은 다음과 같습니다.

복사
INSERT INTO table_name [(column_name, ...)] VALUES (expr, ...)

column_nameVALUES 절에서 지정된 값의 열 이름과 순서를 제공하는 열 이름의 옵션 목록입니다. column_name을 생략하는 경우, 값 표현식(expr)은 테이블에서 정의된 모든 열의 값을 제공해야 하며 테이블에 정의된 열과 동일한 순서여야 합니다. column_name은 필드 반복도 지정할 수 있습니다(예: lastDates[4]).

expr은 새로운 레코드의 열에 대한 값을 제공하는 표현식 목록입니다. 보통 표현식은 열에 대해 상수 값입니다(하지만 하위 쿼리일 수 있음). 작은 따옴표(') 쌍 안에 문자열 값을 둘러싸야 합니다. 작은 따옴표로 둘러싼 문자열 값에 작은 따옴표를 포함하려면, 두 개의 작은 따옴표를 같이 사용하십시오(예: 'Don''t').

하위 쿼리는 괄호로 둘러싸야 합니다.

예제

표현식 목록을 삽입합니다.

복사
INSERT INTO emp (last_name, first_name, emp_id, salary, hire_date)
   VALUES ('Smith', 'John', 'E22345', 27500, DATE '2028-06-05')

INSERT 문은 하나의 레코드를 데이터베이스 테이블에 추가합니다. 이 경우 레코드는 직원 데이터베이스 테이블인 emp에 추가됩니다. 값은 5개의 열에 대해 지정됩니다. 테이블의 나머지 열은 빈 값을 지정하며 이는 Null을 의미합니다.

중요사항  

매개변수가 있는 명령문을 준비하고 사용자의 응용 프로그램에서 데이터를 스트림하지 않는 경우 컨테이너 필드에서 텍스트만 삽입할 수 있습니다. 이진 데이터를 사용하려면 간단하게 작은 따옴표로 둘러싸서 파일 이름을 지정하거나 PutAs() 함수를 사용할 수 있습니다. 파일 이름을 지정하면 파일 유형은 파일 확장자로 추정됩니다.

복사
INSERT INTO table_name (container_name) VALUES(? AS 'filename.file extension')

지원되지 않는 파일 유형은 유형 FILE로 삽입됩니다.

PutAs() 함수 사용 시 유형을 PutAs(col, 'type')으로 지정하십시오. 여기서 유형 값은 컨테이너 필드의 콘텐츠 검색하기: CAST() 함수 및 GetAs() 함수에서 설명한 대로 지원되는 파일 유형입니다.

SELECT 문은 열 이름 목록에서 지정된 각 column_name 값에 대한 값을 반환하는 쿼리입니다. 값 표현식 목록 대신 SELECT 문을 사용하면 하나의 테이블에서 행 세트를 선택하고 단일 INSERT 문을 사용하여 다른 테이블로 삽입할 수 있습니다.

예제

SELECT 문을 사용하여 삽입합니다.

복사
INSERT INTO emp1 (first_name, last_name, emp_id, dept, salary)
   SELECT first_name, last_name, emp_id, dept, salary from emp
   WHERE dept = 'D050'

이 유형의 INSERT 문에서 삽입할 열의 수는 SELECT 문의 열 수와 일치해야 합니다. 다른 유형의 INSERT 문에서 값 표현식 목록의 경우과 같이 삽입할 열 목록은 SELECT 문의 열에 해당되어야 합니다. 예를 들어, 삽입된 첫 번째 열은 선택한 첫 번째 열에 해당되며, 두 번째 열은 두 번째에 해당됩니다.

해당 열의 크기와 데이터 유형은 호환되어야 합니다. SELECT 목록의 각 열에는 INSERT 목록의 해당 열의 일반적인 INSERT/UPDATE에서 ODBC 또는 JDBC 클라이언트 드라이버가 승인하는 데이터 유형이 있어야 합니다. SELECT 목록 열의 값 크기가 해당 INSERT 목록 열의 크기보다 크면 값이 잘립니다.

SELECT 문은 값을 삽입하기 전에 평가됩니다.