0%

MySQL注释

MySQL 注释用法详解

在 MySQL 中,注释是提高 SQL 语句可读性的重要手段,可用于解释逻辑、标注功能或临时屏蔽代码。MySQL 支持三种注释方式,适用于不同场景:

单行注释

1. # 开头的注释

  • 语法# 注释内容# 后直接跟注释文字,无需空格)。
  • 适用场景:单行注释,常用于 SQL 语句末尾或单独一行。
1
2
3
4
5
6
-- 示例 1:语句后注释
SELECT * FROM users WHERE status = 1; # 查询状态为1的用户

-- 示例 2:单独一行注释
# 以下语句用于统计今日新增订单
SELECT COUNT(*) FROM orders WHERE create_time >= CURDATE();

2. --开头的注释

  • 语法-- 注释内容(注意 -- 后必须跟至少一个空格,否则会被视为 SQL 语法的一部分)。
  • 适用场景:单行注释,与 # 功能类似,是 SQL 标准的注释方式。
1
2
3
4
5
6
7
-- 示例 1:注释单行逻辑
SELECT name, age FROM students
WHERE age > 18; -- 筛选成年学生

-- 示例 2:单独一行注释
-- 注意:更新前请确认数据准确性
UPDATE products SET price = price * 1.05 WHERE category = 'electronics';

多行注释

/* ... */ 块注释

  • 语法/* 注释内容 */(可跨多行,/* 表示开始,*/ 表示结束)。
  • 适用场景:多行注释,常用于解释复杂逻辑、标注大段代码功能,或临时屏蔽多行 SQL。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-- 示例 1:多行说明
/*
功能:查询每个用户的订单总数和总金额
条件:仅统计2023年以后的有效订单
作者:xxx
日期:2023-10-01
*/
SELECT
u.id, u.name,
COUNT(o.id) AS order_count,
SUM(o.amount) AS total_amount
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE o.create_time >= '2023-01-01' AND o.status = 'paid'
GROUP BY u.id;

-- 示例 2:临时屏蔽多行代码
/*
DELETE FROM logs WHERE create_time < '2022-01-01';
UPDATE config SET value = 'off' WHERE key = 'debug';
*/

注释的注意事项

  1. 注释位置
    • 可放在 SQL 语句的开头、中间或结尾,但需注意不要破坏语法结构。
    • 例如:SELECT id, name /* 这是中间注释 */ FROM users; 是合法的。
  2. -- 后的空格
    • -- 后无空格(如 --注释),MySQL 会将其视为语法错误(部分版本可能兼容,但不推荐)。
  3. 临时调试
    • 多行注释 /* ... */ 常用于临时屏蔽代码(如调试时注释掉 DELETE/UPDATE 语句,避免误操作)。
  4. 存储过程 / 函数中的注释
    • 在存储过程、函数或触发器中,注释可提高代码可维护性,建议对复杂逻辑添加详细说明。

欢迎关注我的其它发布渠道