MySQL에서 여러 행을 한 번에 삽입하는 방법
네, 가능합니다. MySQL에서는 INSERT 문 하나만으로 두 개 이상의 행(레코드)을 동시에 테이블에 삽입할 수 있습니다. VALUES 절 뒤에 쉼표(,)로 구분하여 여러 개의 값 묶음을 나열하면 됩니다.
기본 구문
INSERT INTO yourTableName(yourColumnName1, yourColumnName2)
VALUES(yourValue1, yourValue2),
(yourValue1, yourValue2),
.........N;
이 방식은 각 행마다 별도의 INSERT 문을 실행하는 것보다 쿼리 호출 횟수가 줄어들어 성능 면에서도 유리합니다.
실습 예제
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable811(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100),
StudentAge int
);
Query OK, 0 rows affected (0.54 sec)
2단계: 여러 행 한 번에 삽입
INSERT 명령 하나로 5명의 학생 정보를 동시에 삽입합니다.
mysql> insert into DemoTable811(StudentName,StudentAge) values('Chris',21),('Robert',22),('David',20),('Bob',19),('Carol',23);
Query OK, 5 rows affected (0.14 sec)
Records: 5 Duplicates: 0 Warnings: 0실행 결과 메시지에서 "5 rows affected"가 표시되는 것을 확인할 수 있습니다. 즉, 단 한 번의 명령으로 5개의 행이 성공적으로 삽입된 것입니다.
3단계: 삽입된 데이터 확인
SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable811;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1 | Chris | 21 |
| 2 | Robert | 22 |
| 3 | David | 20 |
| 4 | Bob | 19 |
| 5 | Carol | 23 |
+-----------+-------------+------------+
5 rows in set (0.00 sec)
정리
이처럼 MySQL에서는 VALUES 절에 여러 값 묶음을 쉼표로 구분하여 나열함으로써, 단일 INSERT 문으로 원하는 만큼의 행을 한 번에 삽입할 수 있습니다. StudentId 컬럼은 AUTO_INCREMENT로 설정되어 있기 때문에 값을 직접 지정하지 않아도 자동으로 순차적인 번호가 부여됩니다.