반응형
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
반응형
'IT 이야기 > DB' 카테고리의 다른 글
[DB 기술면접] 해시 조인(Hash Join)이란 무엇인가 (1) | 2022.09.09 |
---|---|
[DB 기술면접] 클러스터 인덱스, 넌클러스터 인덱스 차이점은? (0) | 2022.09.08 |
[MSSQL] 테이블 및 컬럼 디스크립션(Description) 추가, 수정, 조회 (0) | 2022.09.06 |
[MSSQL] 데이터베이스 정렬 방식 (COLLATE, COLLATION) (0) | 2022.09.05 |
[DB 기술면접] 인덱스(index)란 무엇인가, 생성 방법과 원리 (0) | 2022.09.04 |