IT 이야기/DB

[MSSQL] INSERT문 다양한 사용법

하늘봉 2022. 9. 7. 12:00
반응형

SQL에는 데이터 조작 언어 (DML)가 있으며

DML에는 데이터를 삽입, 입력, 추가하는 INSERT문이 있습니다.

지금부터 INSERT문에 대한 다양한 사용법을 MS-SQL 기준으로 소개해 드리겠습니다.

 

우선 데이터를 입력할 테이블을 하나 생성합니다.

CREATE TABLE dbo.CUST_TABLE (  
        custid int 
,       custname varchar(10) 
,       country varchar(10) 
)

 

INSERT INTO VALUE

가장 기본적인 INSERT문 입니다. 특정 값을 가지는 행들을 테이블에 입력합니다.

INSERT INTO dbo.CUST_TABLE(custid, custname, country) 
VALUES (1, 'test', 'korea');

 

VALUES절 기능이 확대되어 쉼표로 행을 분리해서 한 번에 입력할 수도 있습니다.

INSERT INTO dbo.CUST_TABLE(custid, custname, country) 
VALUES (2, 'test2', 'korea') 
      ,(3, 'test3', 'korea') 
      ,(4, 'test4', 'korea')

 

INSERT SELECT 

SELECT 쿼리에서 반환된 행 집합을 테이블에 입력합니다.

즉, CUST_TABLE_TMP의 조회 결과를 바로 CUST_TABLE에 저장할 수 있습니다.

INSERT INTO dbo.CUST_TABLE (custid, custname, country) 
SELECT custid
     , custname
     , country 
FROM dbo.CUST_TABLE_TMP

 

SELECT INTO

SELECT INTO 구문은 쿼리에서 반환된 행 집합을 입력하면서 테이블까지 생성합니다.

즉, 원본 테이블의 구조와 데이터를 그대로 복사하는 구문입니다.

하지만 ANSI SQL 표준이 아니라 MS-SQL에서만 사용 가능하며 제약사항, 인덱스, 트리거, 권한 등은 복사하지 않습니다. 

-- CUST_TABLE을 복사해서CUST_TABLE_NEW 테이블을 만든다.
SELECT * INTO CUST_TABLE_NEW
FROM CUST_TABLE

 

 

반응형