9.5. 코멘트 신텍스
MySQL 서버는 세 가지 형태의 코멘트 스타일을 지원한다:
- ‘#’문자를 사용.
- ‘-- ’ 시퀀스를 사용한 라인. MySQL에서는, ‘-- ’ (double-dash) 코멘트 스타일은 최소한 한 개의 화이트스페이스 (whitespace) 또는 제어 문자 (control character) (스페이스, 탭, 뉴라인(newline) 등등)가 두 번째 대쉬 (the second dash) 다음에 오도록 하고 있다. 이것은 표준 SQL 코멘트 신텍스와 차이가 있는 점이다.
- C 프로그래밍에서와 같이 /* 시퀀스로 시작해서 */ 시퀀스로 끝나는 라인. 이 신텍스는 코멘트가 시작되는 라인이 끝나는 라인과 같을 필요가 없기 때문에 여러 줄의 코멘트를 작성할 수 있도록 해 준다.
아래의 예문은 위의 세 가지 형태의 코멘트를 보여 주고 있다:
mysql> SELECT 1+1; # This comment continues to the end of line
mysql> SELECT 1+1; -- This comment continues to the end of line
mysql> SELECT 1 /* this is an in-line comment */ + 1;
mysql> SELECT 1+
/*
this is a
multiple-line comment
*/
1;
MySQL 서버는 C-스타일의 코멘트 중의 몇몇 변형 스타일을 지원한다. 이러한 것들은 아래의 형태를 사용해서 MySQL 확장 형태에 포함되는 코드를 작성할 수가 있다:
/*! MySQL-specific code */
위와 같은 경우, MySQL 서버는 코멘트에 포함되어 있는 코드를 다른 SQL 명령문 형태로 분석해서 실행을 하지만, 다른 SQL 서버는 이것을 무시한다. 예를 들면, MySQL 서버는 아래의 명령문에 있는 STRAIGHT_JOIN 키워드를 인식하지만, 다른 SQL 서버는 인식하지 못한다:
SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...
만일 여러분이 ‘!’ 문자 다음에 버전 정보를 추가한다면, 이 신텍스는 이렇게 지정된 MySQL 버전과 같거나 보다 늦게 출시된 서버에서만 실행이 된다. 아래의 코멘트에 있는 TEMPORARY 키워드는 MySQL 3.23.02 또는 그 이상 버전의 서버에서만 구동을 한다:
CREATE /*!32302 TEMPORARY */ TABLE t (a INT);
위에서 설명한 코멘트는 mysqld 서버가 SQL명령문을 분석하는 방식을 설명하는 것이다. 또한, mysql 클라이언트 프로그램은 서버에 명령문을 보내기 전에 몇 가지 파싱 동작을 실행하기도 한다. (이러한 동작은 다중 명령문 입력 라인 안에 있는 명령문의 범위를 판단하기 위해 실행된다.)