INSERT 문
INSERT
문을 사용하여 데이터베이스 테이블에 레코드를 생성합니다. 다음 중 하나를 지정할 수 있습니다.
-
새로운 레코드로 삽입할 값의 목록
-
새로운 레코드 세트로 삽입할 다른 테이블에서 복사하는
SELECT
문
INSERT
문의 포맷은 다음과 같습니다.
INSERT INTO table_name [(column_name, ...)] VALUES (expr, ...)
column_name
은 VALUES
절에서 지정된 값의 열 이름과 순서를 제공하는 열 이름의 옵션 목록입니다. 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
문은 값을 삽입하기 전에 평가됩니다.