目录
- 1、单行注释 --
- 2、单行注释 #
- 3、多行注释 /* */
- 4、内联注释 /*! */
1、单行注释 --
--
注释只能实现一行内容的注释,不能实现多行注释,注释的内容与 --
需要使用空格隔开,注释的范围是从 --
开始到一行的结尾。
例子如下:
-- 这是注释
SELECT * FROM `demo`;
SELECT * FROM `demo`; -- 这是注释
注意:由于 --
后面的内容会被 MySQL 忽略,所以要注意 SQL 语句分号的位置,要么放在 --
前面,要么放在下一行。
2、单行注释 #
#
注释原理和 --
注释的原理一样,唯一不同点就是 #
与注释的内容不需要使用空格隔开。
例子如下:
#这是注释
SELECT * FROM `demo`;
SELECT * FROM `demo`; #这是注释
3、多行注释 /* */
多行注释 /* */
的原理是从 /*
开始,一直到 */
为止,中间所有内容都为注释内容,期间可以跨任意行。但 /*
后面紧跟的第一个字符不能是 !
号,否则会被解释为内联注释,建议 /*
后面使用空格隔开,保证其为标准的多行注释。
例子如下:
/* 这是注释
这是注释
*/
SELECT * FROM `demo`;
4、内联注释 /*! */
在 MySQL 中,/*! */
被称之为内联注释,里面的内容是会被 MySQL 解析的。解析情况分为以下两种:
1)当 /*!
紧跟数据库版本号时
这种情况表示,当目前的数据库版本号大于指定的版本号时,里面的内容才会被解释 SQL 语句,否则会被当成注释处理而被忽略掉,比如:
CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */
表示当 MySQL 的版本号大于 4.1.00 时,后面的 SQL 语句才会被执行。
2)当 /*!
不紧跟版本号时
这种情况下,里面的内容会被当成 SQL 语句解析执行(默认),例如:
-- 内联注释语句
SELECT * FROM `demo` /*! where id = 2 */;
-- 解析后的语句相当于
SELECT * FROM `demo` where id = 2;
总结:一般来说,内联注释只有在紧跟版本号的情况下才有意义,其主要目的是通过版本号来控制部分语句在不同 MySQL 版本下的执行情况。