MySQL에서 INSERT 문 하나만으로 한 열에 여러 개의 값을 삽입하고 싶다면, 각 값을 괄호로 묶어 쉼표로 나열하는 방식을 사용하면 됩니다. 이 방법은 여러 번의 INSERT 문을 실행하는 것보다 훨씬 효율적이며, 데이터베이스와의 통신 횟수도 줄여줍니다.
기본 문법
단일 쿼리로 여러 값을 삽입할 때의 기본 문법은 다음과 같습니다.
INSERT INTO yourTableName VALUES(yourValue1),(yourValue2),..........N;
각각의 괄호 ()는 테이블에 삽입될 하나의 행을 의미합니다. 이렇게 하면 하나의 INSERT 문으로 원하는 만큼 많은 행을 한꺼번에 추가할 수 있습니다.
예제 테이블 생성
실제 동작을 확인하기 위해 먼저 예제용 테이블을 생성해 보겠습니다.
mysql> create table DemoTable2022
-> (
-> Department varchar(100)
-> );
Query OK, 0 rows affected (0.49 sec)위 쿼리는 학과 이름을 저장하기 위한 Department라는 varchar(100) 타입의 열 하나를 가진 테이블을 만듭니다.
여러 값 한 번에 삽입하기
이제 INSERT 명령을 사용해 여러 개의 레코드를 한 번에 삽입해 보겠습니다.
mysql> insert into DemoTable2022 values('Computer Science'),('Information Technology'),
('Civil'),('Mechanical'),('Electronics'),('Electrical');
Query OK, 6 rows affected (0.46 sec)
Records: 6 Duplicates: 0 Warnings: 0실행 결과를 보면 6 rows affected, 즉 6개의 행이 성공적으로 삽입되었음을 알 수 있습니다. 중복된 행도 없고 경고도 발생하지 않았습니다.
삽입 결과 확인하기
SELECT 문을 사용해 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable2022;
위 쿼리를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
+---------------------------+ | Department | +---------------------------+ | Computer Science | | Information Technology | | Civil | | Mechanical | | Electronics | | Electrical | +---------------------------+ 6 rows in set (0.00 sec)
정리
이처럼 MySQL에서는 INSERT 문 하나에 여러 개의 값 그룹을 괄호와 쉼표로 구분하여 나열함으로써, 단일 쿼리로 한 열(또는 여러 열)에 대량의 데이터를 빠르고 간편하게 삽입할 수 있습니다. 대량의 데이터를 처리할 때 이 방식을 활용하면 쿼리 실행 시간과 서버 부하를 크게 줄일 수 있습니다.