MySQL注释
MySQL 注释用法详解
在 MySQL 中,注释是提高 SQL 语句可读性的重要手段,可用于解释逻辑、标注功能或临时屏蔽代码。MySQL 支持三种注释方式,适用于不同场景:
单行注释
1. # 开头的注释
- 语法:
# 注释内容(#后直接跟注释文字,无需空格)。 - 适用场景:单行注释,常用于 SQL 语句末尾或单独一行。
-- 示例 1:语句后注释
SELECT * FROM users WHERE status = 1; # 查询状态为1的用户
-- 示例 2:单独一行注释
# 以下语句用于统计今日新增订单
SELECT COUNT(*) FROM orders WHERE create_time >= CURDATE();
2. --开头的注释
- 语法:
-- 注释内容(注意--后必须跟至少一个空格,否则会被视为 SQL 语法的一部分)。 - 适用场景:单行注释,与
#功能类似,是 SQL 标准的注释方式。
-- 示例 1:注释单行逻辑
SELECT name, age FROM students
WHERE age > 18; -- 筛选成年学生
-- 示例 2:单独一行注释
-- 注意:更新前请确认数据准确性
UPDATE products SET price = price * 1.05 WHERE category = 'electronics';
多行注释
/* ... */ 块注释
- 语法:
/* 注释内容 */(可跨多行,/*表示开始,*/表示结束)。 - 适用场景:多行注释,常用于解释复杂逻辑、标注大段代码功能,或临时屏蔽多行 SQL。
-- 示例 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';
*/
注释的注意事项
- 注释位置:
- 可放在 SQL 语句的开头、中间或结尾,但需注意不要破坏语法结构。
- 例如:
SELECT id, name /* 这是中间注释 */ FROM users;是合法的。
--后的空格:- 若
--后无空格(如--注释),MySQL 会将其视为语法错误(部分版本可能兼容,但不推荐)。
- 若
- 临时调试:
- 多行注释
/* ... */常用于临时屏蔽代码(如调试时注释掉 DELETE/UPDATE 语句,避免误操作)。
- 多行注释
- 存储过程 / 函数中的注释:
- 在存储过程、函数或触发器中,注释可提高代码可维护性,建议对复杂逻辑添加详细说明。