MySQL 한 줄에 여러 문 입력하기
MySQL에서 하나의 쿼리는 일반적으로 SQL 문장과 그 뒤에 오는 세미콜론(;)으로 구성됩니다. 여기서 중요한 점은 세미콜론으로 구분하기만 하면 여러 개의 MySQL 문을 한 줄에 동시에 입력할 수 있다는 것입니다.
기본 원리
MySQL 클라이언트는 세미콜론을 문장의 끝을 나타내는 구분자로 해석합니다. 따라서 한 줄에 여러 문장을 작성하더라도 각 문장이 세미콜론으로 올바르게 종료되어 있다면, MySQL은 이를 순서대로 하나씩 실행하고 결과도 입력한 순서대로 출력합니다.
예제
다음 예제를 통해 확인해 보겠습니다. 두 개의 SELECT 문을 세미콜론으로 구분하여 한 줄에 입력한 경우입니다.
mysql> Select * from Student; Select * from Student ORDER BY Name; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Gaurav | 100 | B.tech | | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | +--------+--------+--------+ 3 rows in set (0.00 sec) +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | | Gaurav | 100 | B.tech | +--------+--------+--------+ 3 rows in set (0.07 sec)
결과 분석
위 예제에서 두 개의 문장이 세미콜론으로 구분되어 한 줄에 입력되었고, MySQL은 다음과 같이 처리했습니다.
- 첫 번째 문장:
Select * from Student;— Student 테이블의 모든 행을 저장된 순서대로 조회합니다. - 두 번째 문장:
Select * from Student ORDER BY Name;— 같은 테이블의 데이터를 이름(Name) 기준으로 정렬하여 조회합니다.
실행 결과를 보면 첫 번째 결과 집합이 먼저 출력되고, 이어서 두 번째 결과 집합이 순차적으로 출력된 것을 확인할 수 있습니다. 즉, MySQL은 한 줄에 입력된 여러 문장을 작성된 순서대로 차례로 실행합니다.
주의 사항
- 각 문장은 반드시 세미콜론으로 종료해야 합니다. 세미콜론이 없으면 MySQL은 문장이 아직 완료되지 않았다고 판단하여 실행하지 않습니다.
- 여러 문장을 한 줄에 작성하면 가독성이 떨어질 수 있으므로, 간단한 조회나 테스트 목적에 적합합니다.
- 복잡한 로직이나 조건부 실행이 필요한 경우에는 저장 프로시저(Stored Procedure)를 사용하는 것이 더 안전하고 체계적입니다.