MySQL 서버에서는 쿼리 작성 시 코드의 가독성을 높이거나 특정 부분을 설명하기 위해 주석(comment)을 추가할 수 있습니다. MySQL에서 지원하는 주석 작성 방식은 크게 세 가지가 있습니다.
1. # 주석 (샵 기호)
# 문자로 시작하는 주석으로, 한 줄(single-line) 주석입니다. # 뒤에 작성된 내용은 해당 줄의 끝까지 모두 주석으로 처리됩니다.
2. -- 주석 (이중 대시)
이 역시 한 줄 주석입니다. 단, -- 다음에는 반드시 공백(space) 또는 제어 문자(control character)가 하나 이상 있어야 합니다. 이 규칙을 지키지 않으면 주석이 아닌 일반 구문으로 해석될 수 있으므로 주의해야 합니다.
3. /* */ 주석 (블록 주석)
/*로 시작하여 */로 끝나는 여러 줄(multi-line) 주석입니다. 시작 기호와 종료 기호가 반드시 같은 줄에 있을 필요는 없기 때문에, 하나의 주석이 여러 줄에 걸쳐 확장될 수 있습니다. 또한 코드 중간에 삽입되는 인라인(in-line) 주석으로도 활용할 수 있습니다.
다음 예제를 통해 세 가지 주석 방식을 모두 확인해 보겠습니다.
mysql> Select NOW() #한 줄 주석은 줄 끝까지 유효합니다
-> ;
+---------------------+
| NOW() |
+---------------------+
| 2017-11-07 15:04:03 |
+---------------------+
1 row in set (0.00 sec)
mysql> Select NOW() -- 한 줄 주석은 줄 끝까지 유효합니다
-> ;
+---------------------+
| NOW() |
+---------------------+
| 2017-11-07 15:04:17 |
+---------------------+
1 row in set (0.00 sec)
mysql> Select 1 /* 인라인 주석 */ +1;
+-------+
| 1 +1 |
+-------+
| 2 |
+-------+
1 row in set (0.10 sec)
mysql> Select 1 /* 인라인 주석 */ +1;
+-------+
| 1 +1 |
+-------+
| 2 |
+-------+
1 row in set (0.00 sec)
mysql> Select 1
-> /*
/*> 이것은 여러 줄에 걸친
/*> 주석입니다
/*> */
-> +1;
+-------+
| 1 +1 |
+-------+
| 2 |
+-------+
1 row in set (0.00 sec)
위 예제에서 볼 수 있듯이, 주석은 쿼리 실행 결과에 영향을 주지 않습니다. 따라서 복잡한 SQL문을 작성할 때 각 절의 의도나 로직을 설명하는 용도로 적극적으로 활용하면 유지보수성과 협업 효율을 크게 높일 수 있습니다.