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

MySQL에서 단일 INSERT 문으로 여러 값(배열) 한 번에 삽입하는 방법

MySQL에서는 단일 INSERT 문만 사용하여 여러 개의 값(레코드)을 한 번에 테이블에 삽입할 수 있습니다. 각 행의 값을 괄호로 묶고 쉼표(,)로 구분하여 나열하면 되는데, 이 방식은 INSERT 문을 여러 번 반복 실행하는 것보다 성능 면에서 훨씬 유리합니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성하겠습니다.

mysql> create table DemoTable
(
    ClientId int,
    ClientName varchar(50)
);
Query OK, 0 rows affected (0.62 sec)

2. 단일 INSERT 문으로 여러 값 삽입하기

INSERT 명령을 사용해 레코드를 삽입합니다. 이때 INSERT 문 하나만 사용하여 다음과 같이 여러 값을 동시에 삽입할 수 있습니다.

mysql> insert into DemoTable values(101,'Adam'),(102,'Chris'),(103,'Robert'),(104,'Sam'),(105,'Mike');
Query OK, 5 rows affected (0.16 sec)
Records: 5 Duplicates: 0 Warnings: 0

실행 결과를 보면 5개의 행이 단 한 번의 쿼리로 정상적으로 삽입되었으며, 중복(Duplicates)이나 경고(Warnings) 없이 깔끔하게 처리된 것을 확인할 수 있습니다.

3. 삽입된 데이터 확인하기

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

mysql> select *from DemoTable;

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

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|      101 | Adam       |
|      102 | Chris      |
|      103 | Robert     |
|      104 | Sam        |
|      105 | Mike       |
+----------+------------+
5 rows in set (0.00 sec)

정리: 다중 행 삽입 기본 문법

단일 INSERT 문으로 여러 행을 삽입하는 기본 문법은 다음과 같습니다.

INSERT INTO 테이블명 VALUES (값1, 값2, ...), (값1, 값2, ...), ...;

값 목록을 쉼표로 구분해 나열하기만 하면 됩니다. 이 방식은 네트워크 왕복 횟수와 쿼리 파싱 오버헤드를 크게 줄여주기 때문에 대량의 데이터를 삽입할 때 특히 효과적입니다.