Loading...
MySQL 9.5 Reference Manual 9.5의 11.7 Comments의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL Server는 세 가지 comment 스타일을 지원합니다:
# 문자부터 줄 끝까지.
-- 시퀀스부터 줄 끝까지.
MySQL에서 -- (double-dash) comment 스타일은 두 번째 dash 뒤에 공백 문자나 space, tab과 같은 제어 문자 중 최소 하나가 와야 합니다. 이 문법은 Section 1.7.2.4, “'--' as the Start of a Comment”에서 설명하는 것처럼 표준 SQL comment 문법과 약간 다릅니다.
/* 시퀀스부터 그 다음 */ 시퀀스까지로, C 프로그래밍 언어와 같습니다. 이 문법은 시작 시퀀스와 종료 시퀀스가 같은 줄에 있을 필요가 없기 때문에, comment가 여러 줄에 걸쳐 이어질 수 있게 해줍니다.
다음 예제는 세 가지 comment 스타일 모두를 보여줍니다:
1mysql> SELECT 1+1; # This comment continues to the end of line 2mysql> SELECT 1+1; -- This comment continues to the end of line 3mysql> SELECT 1 /* this is an in-line comment */ + 1; 4mysql> SELECT 1+ 5/* 6this is a 7multiple-line comment 8*/ 91;
중첩 comment는 지원되지 않으며, deprecated 상태입니다; 차후 MySQL release에서 제거될 것으로 예상하십시오. (일부 조건에서는 중첩 comment가 허용될 수 있지만, 대부분의 경우 허용되지 않으며, 사용자는 이를 피해야 합니다.)
MySQL Server는 C-style comment의 일부 변형을 지원합니다. 이를 사용하면 다음 형식의 comment를 사용하여 MySQL 확장을 포함하지만, 여전히 이식 가능한 코드를 작성할 수 있습니다:
1/*! MySQL-specific code */
이 경우 MySQL Server는 comment 안의 코드를 다른 SQL statement와 마찬가지로 파싱 및 실행하지만, 다른 SQL 서버는 이 확장을 무시해야 합니다. 예를 들어, MySQL Server는 다음 statement에서 STRAIGHT_JOIN 키워드를 인식하지만, 다른 서버는 인식하면 안 됩니다:
1SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...
! 문자 뒤에 version number를 추가하면, comment 안의 문법은 MySQL version이 지정된 version number보다 크거나 같을 때만 실행됩니다. 다음 comment의 KEY_BLOCK_SIZE 키워드는 MySQL 5.1.10 이상 서버에서만 실행됩니다:
1CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;
version number는 Mmmrr 형식을 사용하며, _M_은 메이저 버전, _mm_은 두 자리 마이너 버전, 그리고 _rr_은 두 자리 릴리스 번호입니다. 예를 들어: MySQL server version 9.5.0 이상에서만 실행될 statement에서는 comment 안에 90500을 사용하십시오.
MySQL 9.5에서 version number는 선택적으로 MMmmrr 형식의 여섯 자리로도 구성될 수 있으며, 여기서 _MM_은 두 자리 메이저 버전이고, mm 및 _rr_은 각각 두 자리 마이너 버전과 두 자리 릴리스 번호입니다.
version number 뒤에는 최소 하나의 공백 문자(또는 comment의 끝)가 와야 합니다. comment가 여섯 자리 숫자로 시작하고 그 뒤에 공백이 오면, 이는 여섯 자리 version number로 해석됩니다. 그렇지 않고 다섯 자리 이상 숫자로 시작하면, 그 숫자들은 다섯 자리 version number로 해석됩니다(이 목적에 대해서는 나머지 문자는 무시됨); 다섯 자리 미만의 숫자로 시작하는 경우, 해당 comment는 일반 MySQL comment로 처리됩니다.
방금 설명한 comment 문법은 mysqld 서버가 SQL statement를 파싱하는 방법에 적용됩니다. mysql 클라이언트 프로그램도 statement를 서버로 전송하기 전에 일부 파싱을 수행합니다. (이는 다중 statement 입력 줄 내에서 statement 경계를 결정하기 위해 수행됩니다.) 서버와 mysql 클라이언트 파서 간의 차이에 대한 정보는 Section 6.5.1.6, “mysql Client Tips”를 참조하십시오.
/*!12345 ... */ 형식의 comment는 서버에 저장되지 않습니다. 이 형식을 사용해 저장 프로그램에 comment를 작성하면, 해당 comment는 프로그램 본문에 보존되지 않습니다.
또 다른 C-style comment 문법 변형은 옵티마이저 힌트를 지정하는 데 사용됩니다. 힌트 comment에는 /* comment 시작 시퀀스 뒤에 + 문자가 포함됩니다. 예:
1SELECT /*+ BKA(t1) */ FROM ... ;
자세한 내용은 Section 10.9.3, “Optimizer Hints”를 참조하십시오.
다중 줄 /* ... */ comment 내에서 \C와 같은 단축형 mysql 명령을 사용하는 것은 지원되지 않습니다. 단축형 명령은 단일 줄 /*! ... */ version comment 내에서는 동작하며, 오브젝트 정의에 저장되는 /*+ ... */ 옵티마이저 힌트 comment 내에서도 동작합니다. 옵티마이저 힌트 comment가 오브젝트 정의에 저장되어 dump 파일을 mysql로 다시 로드할 때 이러한 명령이 실행될 수 있다는 우려가 있는 경우, mysql을 --binary-mode 옵션과 함께 실행하거나 mysql이 아닌 다른 재로드 클라이언트를 사용하십시오.
11.6 Query Attributes
12 Character Sets, Collations, Unicode