Skip to content

SQL

注释

在 MySQL 中,注释用于在 SQL 代码中添加说明或备注,使代码更易于理解和维护。MySQL 支持两种类型的注释:单行注释和多行注释。--# 是单行注释的两种不同方式,它们之间有一些细微的区别。

-- (双连字符)

  1. 语法

    • -- 后面必须跟一个空格或控制字符(如换行符)才能开始注释内容。
    • 注释直到行末结束。
  2. 示例

    sql
    SELECT * FROM users; -- 这是一个查询用户表的语句
    
    select * from operation_log where content='' OR 1=1 -- '
  3. 特点

    • -- 注释在某些 SQL 方言(如标准 SQL 和 PostgreSQL)中不被支持,但在 MySQL 和大多数其他数据库系统(如 SQL Server 和 Oracle 的 PL/SQL 块中)中是有效的。
    • 在某些客户端工具中,如果 -- 后面紧跟着某些特定字符(如 -- 本身的连续使用),可能会产生意外的行为或错误,尽管在 MySQL 中这种情况不常见。

# (井号)

  1. 语法

    • # 后面可以直接跟注释内容,不需要空格。
    • 注释直到行末结束。
  2. 示例

    sql
    SELECT * FROM users; # 这是一个查询用户表的语句
    
    select * from operation_log where content='' OR 1=1 #'
  3. 特点

    • # 是 MySQL 和其他一些数据库系统(如 SQLite 和 Microsoft Access)中的标准单行注释符号。
    • 在某些情况下,# 注释可能更直观,因为它不需要额外的空格来分隔注释符号和注释内容。

多行注释

除了单行注释,MySQL 还支持多行注释,使用 /* ... */ 语法:

sql
/*
这是一个多行注释。
可以在这里写多行说明。
*/
SELECT * FROM users;

总结

  • --# 都可以用于单行注释。
  • -- 后面需要跟一个空格或控制字符,而 # 则不需要。
  • 在 MySQL 中,两者在功能上是等价的,选择哪种方式主要取决于个人或团队的编码规范。

选择使用哪种注释方式通常取决于团队的偏好和编码规范,确保代码的一致性和可读性是最重要的。