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

MySQL에서 여러 데이터 한 번에 삽입하는 방법

MySQL에서는 INSERT 문 하나만으로 여러 개의 행(row)을 동시에 테이블에 삽입할 수 있습니다. 각 행의 값을 괄호로 묶고, 쉼표(,)로 구분해 나열하면 됩니다. 이 방식은 레코드마다 별도의 INSERT 문을 실행하는 것보다 네트워크 왕복 횟수와 쿼리 파싱 오버헤드가 줄어들어, 대량의 데이터를 입력할 때 성능 면에서 훨씬 유리합니다.

기본 문법

멀티 로우 INSERT의 기본 문법은 다음과 같습니다.

insert into yourTableName values(yourValue1,yourValue2,.....N),
(yourValue1,yourValue2,.....N),
(yourValue1,yourValue2,.....N),
(yourValue1,yourValue2,.....N),
.
.
.
N

예제: 테이블 생성

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

mysql> create table demo56
-> (
-> id int,
-> first_name varchar(20),
-> last_name varchar(20),
-> age int
-> );
Query OK, 0 rows affected (1.91 sec)

id, first_name, last_name, age 네 개의 컬럼을 가진 demo56 테이블이 정상적으로 생성되었습니다.

여러 레코드 한 번에 삽입하기

이제 INSERT 문 하나로 4명의 회원 정보를 동시에 삽입합니다.

mysql> insert into demo56 values(1,'John','Smith',23),
-> (2,'David','Miller',21),
-> (3,'Chris','Brown',22),
-> (4,'Carol','Taylor',20);
Query OK, 4 rows affected (0.10 sec)
Records: 4 Duplicates: 0 Warnings: 0

실행 결과 메시지의 "Query OK, 4 rows affected" 부분을 보면, 단 한 번의 쿼리 실행으로 4개의 레코드가 모두 정상적으로 삽입되었음을 확인할 수 있습니다.

삽입 결과 확인

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select *from demo56;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------+------------+-----------+------+
| id   | first_name | last_name | age  |
+------+------------+-----------+------+
|    1 | John       | Smith     |   23 |
|    2 | David      | Miller    |   21 |
|    3 | Chris      | Brown     |   22 |
|    4 | Carol      | Taylor    |   20 |
+------+------------+-----------+------+
4 rows in set (0.00 sec)

정리

멀티 로우 INSERT를 활용하면 다음과 같은 장점이 있습니다.

  • 성능 향상: 쿼리 실행 횟수가 줄어들어 대량 데이터 입력 시 처리 속도가 크게 개선됩니다.
  • 트랜잭션 관리 용이: 하나의 문장으로 처리되므로 데이터 일관성(원자성)을 확보하기 쉽습니다.
  • 코드 간결화: 반복적인 INSERT 문 작성 없이 깔끔하고 가독성 좋은 코드를 유지할 수 있습니다.