본문 바로가기
  • [성공하는 개발자] - Developer
DataBase/MSSQL

[MSSQL] INSERT 문 사용법 3가지 (데이터 입력)

by Sein-JH 2022. 11. 3.
728x90

 

SQL Server에서 데이터를 입력하기 위해서는 INSERT 문을 사용한다. SQL Server 2008부터 여러 행을 입력할 수 있는 기능이 추가되었으며, SELECT 해서 INSERT 하는 방법으로도 여러 건의 데이터를 입력할 수 있다. INSERT와 UPDATE를 동시에 수행하기 위해서는 MERGE 문을 사용하거나 프로시저를 생성하여 사용하면 된다.

 

 

기본적인 INSERT 방법

INSERT INTO dbo.dept (deptno, dname, loc) 
VALUES (50, 'IT TEAM', 'SEOUL')

 

INSERT INTO [테이블명] ([칼럼1], [칼럼2], [칼럼3] ...) VALUES ([값1], [값2], [값3] ...)

입력할 칼럼의 개수와 값을 개수를 동일하게 입력하면 된다. 

 

INSERT INTO dbo.dept VALUES (60, 'DEV TEAM', 'PANGYO')

 

입력할 테이블(dept)의 모든 칼럼을 입력할 경우 입력할 칼럼(deptno, dname, loc)  선언은 생략해도 된다. 

 

테이블에 칼럼이 추가되면 INSERT 쿼리 문도 수정해야 하므로 권장하지는 않는다.

되도록이면 귀찮아도 입력할 칼럼을 선언하여 쿼리문을 작성할 것을 권장한다.

 

동시에 여러 행 INSERT 방법

INSERT INTO dbo.dept (deptno, dname, loc) 
VALUES (70, 'DBA TEAM', 'YEOKSAM'), (80, 'DESIGN TEAM', 'GANGNAM')

 

INSERT INTO [테이블명] ([칼럼]) VALUES ([입력 행1]), ([입력 행2]), ([입력 행3]) ...

 

VALUES 뒤에 입력할 행을 쉼표(,)로 구분하여 여러 행을 한 번에 입력할 수 있다.

해당 기능은 SQL Server 2008부터 지원한다.

 

SELECT 결과 INSERT 방법

INSERT INTO dbo.dept (deptno, dname, loc) 
     SELECT deptno + 1
          , dname
          , 'JEJU ISLAND'
       FROM dept
      WHERE deptno IN (60, 70, 80)

 

INSERT INTO [테이블명] ([칼럼1], [칼럼2], [칼럼3] ...) SELECT [값1], [값2], [값3] ... FROM [테이블명] WHERE ...

 

INSERT 문의 칼럼 개수와 테이터 형식을 SELECT 절에서 칼럼의 개수와 데이터 형식을 동일하게 조회하여 여러 건의 데이터를 한 번에 입력할 수 있다. 자주 사용하는 INSERT 방법이니 알고 있으면 많은 도움이 된다.

 

참고 : https://gent.tistory.com/498

댓글