MSSQL의 데이터 입력 기능인 INSERT문에 대한 사용법과 부가적인 팁에 관한 글입니다.
INSERT란?
데이터베이스에 데이터를 입력하는 명령어입니다.
가장 기본적인 기능이고 굉장히 많이 쓰임으로 매우 중요합니다.
INSERT문 사용법
기본 사용법 INSERT INTO ~ VALUES ~
--// 문법
INSERT INTO 데이터입력대상 테이블 명 (
데이터 입력 대상 칼럼1
, 데이터 입력 대상 칼럼2
, 데이터 입력 대상 칼럼3
...
) VALUES (
대상 칼럼1에 입력할 데이터
, 대상 칼럼2에 입력할 데이터
, 대상 칼럼3에 입력할 데이터
...
)
--// 예제
INSERT INTO TARGET_TABLE (
REAL_NAME
, AGE
, GRADE
) VALUES (
'John'
, 20
, 'A'
)
TARGET_TABLE이라는 테이블에 데이터를 입력하는 내용입니다.
각각 REAL_NAME 칼럼에는 'John', AGE 칼럼에는 20, GRADE 칼럼에는 'A'라는 데이터가 들어갑니다.
INSERT문에 지정하지 않은 입력대상 칼럼의 값은 해당 칼럼의 기본값(DEFAULT)이 입력됩니다.
따로 기본값을 설정하지 않았다면 NULL이 입력됩니다.
예) 위 예제에서 입력하는 테이블에 FIRST_NAME 칼럼이 있을 때 INSERT문에서 해당 칼럼에는 데이터 입력을 하지 않기 때문에 FIRST_NAME칼럼에는 NULL이 입력됩니다. (DEFAULT 설정 안 함)
동시에 여러 행 입력하기
동시에 여러 행을 입력하려면 위 기본 사용법에서 ', '(콤마)로 VALUES 부분을 추가해 주면 됩니다.
INSERT INTO TARGET_TABLE (
REAL_NAME
, AGE
, GRADE
) VALUES (
'John'
, 20
, 'A'
), VALUES (
'Sam'
, 21
, 'B'
)
--// 2개의 행이 입력됩니다.
2 개행뿐만 아니라 3개, 4개 그 이상도 ', '(콤마)와 VALUES 부분을 추가해주면 됩니다.
INSERT INTO ~ VALUES ~ (칼럼명 생략)
INSERT문 작성 시 모든 칼럼에 데이터를 입력하는 경우 칼럼명을 생략할 수 있습니다.
TEMP_TABLE | NAME | TYPE |
1 | NAME | VARCHAR(50) |
2 | AGE | INT |
위 테이블에 데이터 입력을 칼럼명 생략하여 진행해보겠습니다.
INSERT INTO TEMP_TABLE VALUES ('John', 20)
칼럼명을 입력하지 않았지만 데이터는 정상적으로 입력됩니다.
칼럼 순서에 맞게 첫 번째 칼럼인 NAME에 'John', 두 번째 칼럼인 AGE에 20의 값이 각각 입력됩니다.
칼럼 순서에 맞게 모든 데이터를 VALUES 칸에 입력한다면 칼럼명을 생략할 수 있습니다.
INSERT INTO ~ SELECT
SELECT문으로 데이터 출력한 결과를 그대로 입력하는 방법입니다.
INSERT INTO (
입력대상 칼럼1
, 입력대상 칼럼2
, 입력대상 칼럼3
...
)
SELECT 입력위한 조회칼럼1
, 입력위한 조회칼럼2
, 입력위한 조회칼럼3
...
FROM TMEP_TABLE
INSERT INTO ~ VALUES처럼 입력대상 칼럼 순서에 맞춰서 조회 칼럼 순서를 지정합니다.
INSERT INTO ~ SELECT 문도 모든 칼럼에 데이터 입력한다면 칼럼명을 생략할 수 있습니다.
조회 결과가 여러 행이라면 여러 행이 입력되고, 단행이라면 한 행만 입력됩니다.
INSERT 하는 SELECT문이라고 특별한 것은 없습니다.
WHERE절 GROUP BY절 등 아무 제약 없이 SELECT 할 수 있습니다.
이상으로 MSSQL INSERT문에 대해 살펴보았습니다.
도움이 되셨다면 공감 부탁드립니다.