MySQL 종료 문(구분자)이란?
MySQL에서 문장의 끝을 나타내는 기본 구분자는 세미콜론(;)입니다. 하지만 저장 프로시저나 트리거처럼 내부에 여러 개의 세미콜론이 포함된 복잡한 SQL 블록을 작성할 때는 이 구분자를 다른 기호로 변경해야 합니다.
MySQL에서 종료 문(구분자)을 변경하려면 DELIMITER 명령어를 사용합니다.
DELIMITER 원하는기호
위에서 원하는기호 부분에 사용자가 지정하고 싶은 임의의 기호를 넣으면 됩니다. 예를 들어 //, $$, ;; 등이 자주 사용됩니다. 기본값은 DELIMITER ;입니다.
구분자 변경 실습 예제
1. 테이블 생성하기
먼저 구분자를 //로 변경한 후 테이블을 생성해 보겠습니다.
mysql> DELIMITER //
mysql> create table DemoTable
-> (
-> Id int,
-> Name varchar(20)
-> )//
Query OK, 0 rows affected (0.52 sec)위 예제에서는 구분자를 //로 설정했기 때문에, MySQL 클라이언트는 세미콜론이 아닌 //를 만나야만 문장이 끝났다고 인식합니다.
2. 데이터 삽입하기
INSERT 명령문을 사용하여 테이블에 레코드를 삽입합니다.
mysql> insert into DemoTable values(100,'Chris')// Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values(101,'David')// Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(102,'Bob')// Query OK, 1 row affected (1.07 sec)
3. 데이터 조회하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable //
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------+-------+ | Id | Name | +------+-------+ | 100 | Chris | | 101 | David | | 102 | Bob | +------+-------+ 3 rows in set (0.00 sec)
주의 사항
작업이 끝난 후에는 반드시 구분자를 기본값인 세미콜론으로 되돌리는 것이 좋습니다.
DELIMITER ;
이렇게 하면 이후 일반적인 SQL 문장 작성 시 혼란을 방지할 수 있습니다. 구분자 변경은 주로 저장 프로시저(Stored Procedure), 함수(Function), 트리거(Trigger)를 정의할 때 유용하게 활용됩니다.