본문 바로가기
DataBase/MsSql

데이터베이스 INSERT DML 문 사용 방법 및 예제

by 아우럼 2024. 3. 17.
반응형

INSERT는 데이터를 레코드에 입력하기 위한 DML 문으로 보통 database TABLE의 데이터를 입력할 때 INSERT DML 문을 사용합니다.

INSERT DML 문 사용 방법

테이블 COLUMN 지정하지 않고 INSERT 하는 방법.

코드 예시.
Insert into [table 이름]
values ([value1, value2, value3...]);
질문: column을 지정하지 않고 데이터를 입력하세요.

 

USE sampleDB;
DROP TABLE IF EXISTS UserInfoForInsert;
CREATE TABLE UserInfoForInsert (
    UserId int,
    UserNm varchar(255),
    UserAge  int , 
    UserLocation varchar(500)
); 

-- 1. 테이블 COLUMN 지정하지 않고 INSERT 하는 방법
insert into  UserInfoForInsert values ('202401','john',37,'USA');
-- INSERT 확인 
select * from UserInfoForInsert;

 

column을 지정하지 않고 데이터를 insert 합니다.

COLUMN 지정하여 동시에 여러 행 INSERT DML 문 방법.

코드 예시.
Insert into [table 이름] ([column1, column2, column3...])
values ([value1, value2, value3...]);

 

USE sampleDB;
DROP TABLE IF EXISTS UserInfoForInsert;
CREATE TABLE UserInfoForInsert (
    UserId int,
    UserNm varchar(255),
    UserAge  int , 
    UserLocation varchar(500)
);  
-- 2. COLUMN 지정하여 동시에 여러 행 INSERT 방법. 
insert into  UserInfoForInsert(UserId,UserNm,UserAge) 
values
('202401','Obama',60),
('202402','Biden',84),
('202403','Bush',90),
('202404','Hill',60),
('202405','Lee',43)
-- INSERT 확인 
select * from UserInfoForInsert;

 

COLUMN 지정한 후 동시에 여러 행 INSERT 방법입니다.

SELECT 결과 INSERT 방법.

코드 예시.
Insert into [table 이름] ([column1, column2, column3...])
SELECT [column1, column2, column3...]
FROM [table 이름];

질문: select 한 데이터를 다시 대상 테이블에 넣어주세요.
단, 마지막 column의 data는 임의로 insert 하세요.

 

-- 3. SELECT 결과 INSERT 방법 
insert into  UserInfoForInsert(UserId,UserNm,UserAge,UserLocation) 
select UserId,UserNm,UserAge , 'white house'   
from UserInfoForInsert;
-- INSERT 확인 
select * 
from UserInfoForInsert;

 

select 한 데이터를 다시 대상 테이블에 insert 합니다.

INSERT 문에 OUTPUT 사용.

테이블에 행을 삽입하고 OUTPUT 절을 사용하여 문의 결과를 테이블 변수를 통해 반환할 수 있습니다.

질문: INSERT 한 data를 바로 확인할 수 있도록 테이블 변수와 OUTPUT을 이용하여 출력하세요.

-- 4. INSERT 문에 OUTPUT 사용
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForInsertOutput;
CREATE TABLE UserInfoForInsertOutput (
    UserId int,
    UserNm varchar(255),
    UserAge  int 
); 
 
 DECLARE @outPutTable table(UserId int,
			   	UserNm varchar(255),
				UserAge  int );  
INSERT UserInfoForInsertOutput 
    OUTPUT INSERTED.UserId, INSERTED.UserNm, INSERTED.UserAge  
        INTO @outPutTable 
VALUES ('202405','Lee',43);  
select * from  @outPutTable;
--table 들어갔는지 확인  
-- select * from UserInfoForInsertOutput;

 

OUTPUT 절을 사용하여 문의 결과를 테이블 변수를 통해 반환 합니다.

Table 전체 COPY.

코드예시.
select * into [NEW Table 명]
from [Table 명];
질문: select 문을 이용하여 신규 table에 모든 data를 입력하세요.

USE sampleDB;
DROP TABLE IF EXISTS UserInfoForInsertCopy;
select * into UserInfoForInsertCopy 
from UserInfoForInsert;

--table 복사 확인
select *
 from UserInfoForInsertCopy;

 

신규 table을 만들면서 데이터를 copy 합니다.

SSMS 이용하여 INSERT DML 문

SSMS 사용경로.

  • Object Explorer - table이름 선택 - 오른쪽 마우스 - Edit Top 200 Rows 선택.
  • Insert 할 데이터를 입력하고 enter 치면 바로 data가 반영됩니다.
  • SSMS 캡처 화면.

 

Insert할 데이터를 입력하고 enter 치면 바로 data가 반영 됩니다.

 

 

반응형