MySQL Comment In Depth

MySQL Comment

摘要:在本教程中,您将学习如何使用 MySQL 注释来记录 MySQL 中的 SQL 语句或代码块。

评论

注释可用于记录 SQL 语句的用途或存储过程中代码块的逻辑。 MySQL在解析SQL代码时会忽略注释部分。它只执行除可执行注释之外的 SQL 部分,我们将在下一节中讨论。

MySQL支持三种注释风格:

  1. '-- '到行尾。双破折号注释样式在第二个破折号之后至少需要空格或控制字符(空格、制表符、换行符等)。
    从用户中选择*; ——这是一条评论
    

    请注意,标准 SQL 不需要在第二个破折号后有空格。 MySQL 使用空格来避免某些 SQL 构造的问题,例如:

    选择10--1;
    

    该语句返回 11。如果 MySQL 不使用空格,它将返回 10。

  2. '#'到行尾。
    选择 
        姓氏、名字
    从
        雇员
    在哪里
        报告对象 = 1002; # 获取黛安的下属
    
  3. C 风格注释/**/可以跨越多行。您可以使用此注释样式来记录 SQL 代码块。
     /*
        获取销售代表员工
        向安东尼汇报
    */
    
    选择 
        姓氏、名字
    从
        雇员
    在哪里
        报告对象 = 1143
            AND jobTitle = '销售代表';
    

请注意,MySQL 不支持嵌套注释。

可执行的注释

MySQL提供可执行注释来支持不同数据库之间的可移植性。这些注释允许您嵌入仅在 MySQL 中执行但不能在其他数据库中执行的 SQL 代码。

下面说明了可执行注释语法:

/*! MySQL-specific code */
Code language: SQL (Structured Query Language) (sql)

例如,以下语句使用可执行注释:

SELECT 1 /*! +1 */
Code language: SQL (Structured Query Language) (sql)

该语句返回2而不是1。但是,如果在其他数据库系统中执行它,它将返回1。

如果要从特定版本的 MySQL 执行注释,请使用以下语法:

/*!##### MySQL-specific code */
Code language: SQL (Structured Query Language) (sql)

字符串'#####'代表可以执行该注释的MySQL的最低版本。第一个 # 是主要版本,例如 5 或 8。第二个 2 个数字 (##) 是次要版本。最后2个是补丁级别。

例如,以下注释仅在 MySQL 5.1.10 或更高版本中可执行:

CREATE TABLE t1 (
    k INT AUTO_INCREMENT,
    KEY (k)
)  /*!50110 KEY_BLOCK_SIZE=1024; */
Code language: SQL (Structured Query Language) (sql)

在本教程中,您学习了如何使用 MySQL 注释来记录 MySQL 中的 SQL 代码。

本教程有帮助吗?