INSERT 문
INSERT 문을 사용하여 데이터베이스 테이블에 레코드를 생성합니다. 다음 중 하나를 지정할 수 있습니다.
-
새로운 레코드로 삽입할 하나 이상의 값 목록
-
새로운 레코드 세트로 삽입할 다른 테이블에서 복사하는
SELECT문
INSERT 문의 포맷은 다음과 같습니다.
INSERT INTO table_name [(column_name, ...)] VALUES [(expr, ...), ...]
INSERT INTO table_name [(column_name, ...)] SELECT column_name, ... FROM table_name [WHERE expr]
VALUES 포함
column_name은 VALUES 절에서 지정된 값의 열 이름과 순서를 제공하는 열 이름의 옵션 목록입니다. column_name을 생략하는 경우, 표현식 목록(expr)은 테이블에서 정의된 모든 열의 값을 제공해야 하며 테이블에 정의된 열과 동일한 순서여야 합니다.
표현식 목록(expr)은 새로운 레코드의 열에 대한 값을 제공합니다. 여러 레코드를 추가하려면 각 레코드에 대해 쉼표로 구분하여 괄호 안에 표현식 목록을 지정합니다. 일반적으로 표현식 목록은 각 열에 대한 상수 값으로 구성됩니다(그러나 목록은 하위 쿼리일 수도 있음). 작은 따옴표(') 쌍 안에 문자열 값을 둘러싸야 합니다. 작은 따옴표로 둘러싼 문자열 값에 작은 따옴표를 포함하려면, 두 개의 작은 따옴표를 같이 사용하십시오(예: 'Don''t').
하위 쿼리는 괄호로 둘러싸야 합니다.
예제
두 개의 표현식 목록을 삽입합니다.
INSERT INTO emp (last_name, first_name, emp_id, salary, hire_date)
VALUES ('Smith', 'John', 'E22345', 27500, DATE '2028-06-05'),
('Marks', 'Alea', 'E24682', 28500, DATE '2029-09-30')
이 INSERT 문은 지정된 각 값 목록에 대해 데이터베이스 테이블에 하나의 레코드를 추가합니다. 이 경우 직원 데이터베이스 테이블인 emp에 두 개의 레코드가 추가되었습니다. 값은 5개의 열에 대해 지정됩니다. 테이블의 나머지 열은 빈 값을 지정하며 이는 Null을 의미합니다.
SELECT 포함
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 문은 값을 삽입하기 전에 평가됩니다.
참고
-
매개변수가 있는 명령문을 준비하고 사용자의 응용 프로그램에서 데이터를 스트림하지 않는 경우 컨테이너 필드에서 텍스트만
삽입할 수 있습니다. 이진 데이터를 사용하려면 간단하게 작은 따옴표로 둘러싸서 파일 이름을 지정하거나PutAs()함수를 사용할 수 있습니다. 파일 이름을 지정하면 파일 유형은 파일 확장자로 추정됩니다.복사INSERT INTO table_name (container_name) VALUES (? AS 'filename.file extension')지원되지 않는 파일 유형은 유형 FILE로 삽입됩니다.
PutAs()함수 사용 시 유형을 (PutAs(col, 'type'))으로 지정하십시오. 여기서 유형 값은 컨테이너 필드의 콘텐츠 검색하기: CAST() 함수 및 GetAs() 함수에서 설명한 대로 지원되는 파일 유형입니다. -
column_name은 필드 반복도 지정할 수 있습니다(예:lastDates[4]).