Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 단일 INSERT 쿼리로 여러 레코드를 한 번에 삽입하는 방법

MySQL에서는 INSERT 명령문 하나만으로도 여러 개의 레코드를 손쉽게 추가할 수 있습니다. VALUES 절에 값 그룹을 쉼표(,)로 구분하여 나열하면 되는데, 이는 반복적인 INSERT 문을 여러 번 실행하는 것보다 훨씬 효율적입니다.

기본 문법

insert into yourTableName(yourColumnName1,yourColumnName2,......N)
values(yourValue1,yourValue2,....N),(yourValue1,yourValue2,....N),..........N;

VALUES 뒤에 괄호로 묶인 값 목록을 쉼표로 계속 이어 붙이면, 각 괄호가 하나의 행(레코드)으로 테이블에 삽입됩니다.

예제 1: 테이블 생성하기

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value1 int,
    Value2 int,
    Value3 int
);
Query OK, 0 rows affected (0.79 sec)

AUTO_INCREMENT로 설정된 Id 컬럼은 기본 키 역할을 하며, 레코드가 삽입될 때마다 자동으로 순차적인 번호가 부여됩니다.

예제 2: 여러 레코드 동시에 삽입하기

이제 단일 INSERT 명령으로 네 개의 레코드를 한 번에 삽입해 보겠습니다.

mysql> insert into DemoTable(Value1,Value2,Value3) values(10,20,40),(100,148,120),(150,670,1000),
(100000,200000,409999);
Query OK, 4 rows affected (0.17 sec)
Records : 4 Duplicates : 0 Warnings : 0

실행 결과를 보면 4 rows affected, 즉 네 개의 행이 성공적으로 삽입되었음을 확인할 수 있습니다. 중복된 레코드나 경고 없이 깔끔하게 처리되었습니다.

예제 3: 삽입된 데이터 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+--------+--------+--------+
| Id | Value1 | Value2 | Value3 |
+----+--------+--------+--------+
| 1  | 10     | 20     | 40     |
| 2  | 100    | 148    | 120    |
| 3  | 150    | 670    | 1000   |
| 4  | 100000 | 200000 | 409999 |
+----+--------+--------+--------+
4 rows in set (0.00 sec)

정리

단일 INSERT 문으로 여러 레코드를 삽입하면 다음과 같은 장점이 있습니다.

- 성능 향상: 쿼리를 한 번만 전송하므로 네트워크 왕복 횟수와 파싱 오버헤드가 줄어듭니다.
- 원자성 관리 용이: 하나의 문장으로 처리되므로 트랜잭션 제어가 더 간단합니다.
- 코드 간결화: 반복되는 INSERT 문을 줄여 코드 가독성이 좋아집니다.

대량의 데이터를 삽입할 때는 이처럼 멀티 로우(multi-row) INSERT 구문을 활용하는 것이 가장 간편하고 효율적인 방법입니다.