Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

12 INSERT 문으로 데이터 삽입하기 본문

MSSQL/SQL 시작하기

12 INSERT 문으로 데이터 삽입하기

빌드이너프 2024. 10. 2. 22:49

INSERT 문으로 데이터 삽입하기

데이터를 삽입하려면 INSERT 문으로 사용한다.

 

INSERT 문의 기본 형식

INSERT INTO 테이블 [열1, 열2, ...] VALUES [값1, 값2, ...];

 

데이터를 삽입, 수정, 삭제하려면 테이블이 필요하다.

doit_dml이라는 이름의 테이블을 생성하고 각 열에 데이터를 입력하는 쿼리

USE DoItSQL;
CREATE TABLE doit_dml (
col_1 INT,
col_2 NVARCHAR(50),
col_3 DATETIME
)
GO

INSERT INTO doit_dml(col_1, col_2, col_3)
VALUES (1, 'DoItSQL', '2021-01-01')

 

테이블에 삽입한 데이터 검색

SELECT * FROM doit_dml;


INSERT 문의 특이사항

테이블에 데이터를 삽입할 때 열 이름을 생략할 수 있다.

하지만 열 이름을 생략하려면 VALUES 문 뒤에 테이블의 열 순서와 개수에 맞춰 데이터를 채워야 한다.

열 이름을 생략하고 테이블에 데이터 삽입

INSERT INTO doit_dml
VALUES (2, N'열 이름 생략', '2021-01-02');

 

테이블에 삽입한 데이터 검색

SELECT * FROM doit_dml;

 

만약 col_3 위치에 해당하는 값을 입력하지 않으면 테이블의 열 개수와 입력한 값의 개수가 일치하지 않아 오류가 발생한다.

INSERT INTO doit_dml
VALUES (2, N'col_3 값 생략');


col_1, col_2 열에만 데이터를 삽입하는 방법

테이블 이름 다음에 삽입 대상 열만 소괄호로 나열한다.

INSERT INTO doit_dml(col_1, col_2)
VALUES (2, N'col_3 값 생략');

 

테이블에 삽입한 데이터 검색

SELECT * FROM doit_dml;


삽입하려는 데이터의 순서 변경

INSERT INTO doit_dml(col_1, col_3, col_2)
VALUES (4, '2021-01-03', N'열 순서 변경');


테이블에 삽입한 데이터 검색

SELECT * FROM doit_dml;


여러 데이터 한 번에 삽입

INSERT 문을 여러 번 작성하거나

삽입할 값을 소괄호로 묶어 쉼표로 구분하는 방법이 효율적이다.

INSERT INTO doit_dml(col_1, col_2, col_3)
VALUES (5, N'데이터 입력5', '2021-01-03'), (6, N'데이터 입력6', '2021-01-03'), (7, N'데이터 입력7', '2021-01-03');

 

테이블에 삽입한 데이터 검색

SELECT * FROM doit_dml;

 

데이터를 삽입할 때 자료형과 맞지 않으면 오류가 발생한다.

숫자형 열에 문자형을 삽입해 오류가 발생하는 쿼리

INSERT INTO doit_dml(col_1) VALUES (N'문자입력');


NULL을 허용하지 않도록 테이블 생성

NULL은 어떠한 값도 정의되지 않은 상태이다.

테이블에 NULL이 생성된 이유는 '테이블을 생성할 때 NULL을 허용했기 때문'이다.

만약 NULL을 허용하지 않도록 열을 정의하면 NULL을 삽입할 때 오류가 발생한다.

col_2에 NULL을 허용하지 않도록 설정하고 col_2에 NULl을 삽입해 오류를 발생시키는 쿼리

CREATE TABLE doit_notnull (
col_1 INT,
col_2 NVARCHAR(50) NOT NULL
)
GO

INSERT INTO doit_noutnull (col_1) VALUES (1);