본문 바로가기

Database

DB INSERT {INTO} table_name {(insert_column_list)}SELECT insert_values_listF WHERE search_conditionROM table_name insert select

반응형

- 쿼리교도소 탈출하기 


INSERT {INTO} table_name {(insert_column_list)}

SELECT insert_values_list

FROM table_name

WHERE search_condition


대량의 데이터를 입력하는데 있어서 아주 유용한 방법입니다. 많은 분들이 액셀이나 액세스에서 데이터를 가지고 와서 SQL Server에 데이터를 부으려고 하는 경우 있습니다. 그럴 때, 액셀이나 액세스의 데이터를 SQL Server DTS를 통해 데이터를 가지고 오고 집어넣어야 할 테이블에 세 번째 문장과 같은 방법을 이용해서 한번에 입력이 가능합니다. 그리고, SQL문 중에서 OLTP로 이루어지는 실시간 처리도 많이 있지만, 경우에 따라서 한번에 모든 데이터를 처리하는 배치작업도 많이 있습니다. 이럴 때 같은 방법으로 INSERT를 수행 함으로써 큰 이득을 볼 수 있습니다

예를 들어서 액셀에서 새로운 학생 데이터를 가지고 왔다면 다음과 같이 수행 할 수 있습니다.

INSERT STUDENT

SELECT 학번, 학과, 성명, 점수

FROM  새로운액셀테이블

WHERE 학과 = ‘04’

위와 같이 SELECT를 사용해서 데이터를 입력하는 것은 굉장히 많은 이득이 있습니다. 우선적으로 다른 INSERT ~ VALUES문은 한번에 한 줄의 데이터만 입력이 가능합니다. 하지만, 이 문장은 한번에 제한 없이 여러 줄을 입력이 가능합니다. 또한, 테이블끼리의 조인을 통해서 유용한 정보만 입력들을 할 수도 있습니다.