Skip to content

sql-comments

注释是程序或脚本中一段被编译器或解释器忽略的文本。在 SQL 中,注释主要有两个用途:向人类读者解释复杂的代码段,以及在调试期间临时禁用语句的某些部分。

单行注释以两个连续的连字符(--)开始,并延伸到行尾。该行中连字符后面的任何文本都不会被执行。

MySQL 也支持使用井号(#)作为单行注释。

-- 这是一个单行注释。
-- 检索过去90天内注册的所有活跃用户
SELECT UserID, Email
FROM Users
WHERE IsActive = TRUE
AND CreatedAt >= CURRENT_DATE - INTERVAL '90 days';

在这里,我们可以临时禁用 ORDER BY 子句,以便在不进行排序的情况下测试查询的行为。

SELECT * FROM Customers
WHERE City = 'New York'
-- 按照 LastName 升序排序;

多行注释用于注释掉一段 SQL 代码块。它以 /* 开始,以 */ 结束。这些定界符之间的所有文本都将被忽略。

/*
这是一个多行注释。
它可以跨越多行。
*/
/*
此查询计算每个产品类别的总销售额。
它连接了三个表:
- Categories:用于获取类别名称。
- Products:用于连接类别和订单项。
- OrderItems:用于获取每个销售的数量和价格。
*/
SELECT
c.CategoryName,
SUM(oi.Quantity * oi.UnitPrice) AS TotalSales
FROM Categories c
JOIN Products p ON c.CategoryID = p.CategoryID
JOIN OrderItems oi ON p.ProductID = oi.ProductID
GROUP BY c.CategoryName;

多行注释也常用于在调试时禁用 WHERE 子句的一部分。

SELECT * FROM Products
WHERE CategoryID = 1
/*
AND IsAvailable = TRUE
AND Price < 100.00
*/