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

MySQL에서 여러 개의 SELECT 쿼리를 한 번에 실행하는 방법

MySQL에서는 DELIMITER 개념을 활용하면 여러 개의 SELECT 쿼리를 한 번에 실행할 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1. 첫 번째 테이블 생성 및 데이터 삽입

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

mysql> create table DemoTable1
(
    Title text
)ENGINE=MyISAM;
Query OK, 0 rows affected (0.30 sec)

INSERT 명령을 사용해 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable1 values('The database MySQL is less popular than MongoDB') ;
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1 values('Java language uses MySQL database');
Query OK, 1 row affected (0.05 sec)
mysql> insert into DemoTable1 values('Node.js uses the MongoDB') ;
Query OK, 1 row affected (0.05 sec)

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable1;

실행 결과는 다음과 같습니다.

+-------------------------------------------------+
| Title                                           |
+-------------------------------------------------+
| The database MySQL is less popular than MongoDB |
| Java language uses MySQL database               |
| Node.js uses the MongoDB                        |
+-------------------------------------------------+
3 rows in set (0.00 sec)

2. 두 번째 테이블 생성 및 데이터 삽입

다음으로 자동 증가(AUTO_INCREMENT) 기본 키를 가진 두 번째 테이블을 생성합니다.

mysql> create table DemoTable2
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY
);
Query OK, 0 rows affected (0.45 sec)

VALUES 절을 반복해 사용하면 한 번의 INSERT 명령으로 여러 행을 손쉽게 추가할 수 있습니다.

mysql> insert into DemoTable2 values(),(),(),(),(),(),(),(),();
Query OK, 9 rows affected (0.19 sec)
Records: 9 Duplicates: 0 Warnings: 0

SELECT 문으로 저장된 데이터를 확인합니다.

mysql> select *from DemoTable2;

실행 결과는 다음과 같습니다.

+----+
| Id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
+----+
9 rows in set (0.00 sec)

3. DELIMITER로 다중 SELECT 쿼리 실행하기

이제 핵심인 다중 SELECT 쿼리 실행 방법입니다. 기본적으로 MySQL 클라이언트는 세미콜론(;)을 문장 종료 문자로 인식하기 때문에, 이를 임시로 변경하려면 DELIMITER 명령을 사용합니다. 아래와 같이 구분자를 //로 변경한 뒤 두 개의 SELECT 문을 연속해서 작성하고 마지막에 //로 묶어주면 됩니다.

mysql> DELIMITER //
mysql> select *from DemoTable1;
select *from DemoTable2;
//

위 쿼리를 실행하면 두 SELECT 문의 결과가 차례대로 출력됩니다.

+-------------------------------------------------+
| Title                                           |
+-------------------------------------------------+
| The database MySQL is less popular than MongoDB |
| Java language uses MySQL database               |
| Node.js uses the MongoDB                        |
+-------------------------------------------------+
3 rows in set (0.00 sec)
+----+
| Id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
+----+
9 rows in set (0.03 sec)

정리: MySQL에서 여러 개의 SELECT 쿼리를 한 번에 실행하려면 DELIMITER // 로 구분자를 변경한 후, 실행할 쿼리들을 나열하고 마지막에 지정한 구분자(//)로 닫아주면 됩니다. 이 방식은 스토어드 프로시저나 트리거 작성 시에도 널리 활용되는 기법이므로 함께 익혀두면 유용합니다.