首页
学习
活动
专区
圈层
工具
发布

mysql sql语句注释

在 MySQL 中,​​SQL 语句注释​​用于在 SQL 代码中添加说明、提醒或临时禁用某部分代码,而不会被 MySQL 执行。注释对于代码的可读性、维护性以及调试都非常有帮助。


一、MySQL 支持的注释类型

MySQL 提供了 ​​三种主要类型的注释方式​​:


1. ​​单行注释(推荐常用)​

语法 1:使用 #开头

  • ​注释内容​​从 #开始,到该行结束
  • ​适用于:​​ MySQL 特有,非常常见
代码语言:javascript
代码运行次数:0
复制
# 这是一个单行注释(MySQL风格)
SELECT * FROM users;

✅ ​​推荐在 MySQL 命令行、脚本、存储过程中广泛使用​


语法 2:使用 --(双横线 + 空格)

  • ​注释从 --开始,后面必须跟至少一个空格​​,然后是注释内容
  • ​注释到该行结束​
代码语言:javascript
代码运行次数:0
复制
-- 这也是一个单行注释(标准SQL风格,注意空格)
SELECT * FROM products;

⚠️ 注意:--后面​​必须有一个空格​​,否则可能不会被识别为注释(某些客户端可能不严格要求,但最好加上)


2. ​​多行注释(块注释)​​(标准 SQL,跨数据库通用)

语法:使用 /*开始注释,*/结束注释

  • 可以跨多行
  • 可出现在 SQL 语句的任何位置(开头、中间、甚至语句中间某段)
代码语言:javascript
代码运行次数:0
复制
/*
这是一个多行注释(块注释),
可以写多行内容,
用于详细说明一段SQL的用途等。
*/
SELECT * FROM orders;

🔹 ​​示例:注释掉某部分代码(临时禁用)​

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM users
/*
WHERE status = 'inactive'
*/
AND age > 18;

✅ 上面的 SQL 实际执行的是:SELECT * FROM users AND age > 18;(WHERE status 那行被注释掉了)

⚠️ 注意:如果注释写法不对(比如缺少 */),会导致 SQL 语法错误!


3. ​​在 SQL 语句中间使用注释(内联注释)​

你可以在 SQL 语句的​​任意位置插入注释​​,比如在列名后、表名后、条件中间等,提高代码可读性。

代码语言:javascript
代码运行次数:0
复制
SELECT 
    user_id,        -- 用户唯一标识
    username,       # 用户名
    created_at      -- 注册时间
FROM users
WHERE status = 'active';  /* 只查询活跃用户 */

✅ 这种写法在复杂 SQL 中非常常见,用于解释字段、表用途、条件含义等


二、注释的常见使用场景

场景

示例

说明

​​解释 SQL 用途​​

-- 查询所有活跃用户SELECT * FROM users WHERE status = 'active';

增强代码可读性

​​临时禁用代码​​

SELECT * FROM users-- WHERE status = 'deleted'

快速注释某条件,不用删除代码

​​多行说明​​

/*<br> 该 SQL 用于生成每日销售报表<br> 创建时间:2024-06-01<br>*/SELECT ...

详细说明一段逻辑

​​字段解释​​

SELECT user_id -- 用户ID, name -- 姓名 FROM users

行内解释列含义

​​调试 SQL​​

注释掉部分 JOIN 或 WHERE 条件,逐步排查问题

常用调试技巧


三、注释的最佳实践 ✅

建议

说明

​​推荐使用 #或 --(带空格)做单行注释​​

尤其是在 MySQL 脚本、存储过程、函数中常见

​​复杂逻辑使用 /* ... */多行注释​​

便于写多行说明,比如表用途、作者、时间等

​​注释与代码保留同一缩进​​

增强可读性

​​避免过多无意义注释​​

注释应解释“为什么”,而非“做什么”(代码本身应尽量清晰)

​​调试时可以灵活注释部分代码​​

比如临时禁用 WHERE、JOIN、ORDER BY 等


四、示例汇总

示例 1:单行注释(# 和 --)

代码语言:javascript
代码运行次数:0
复制
# 查询所有用户
SELECT * FROM users;

-- 以下查询年龄大于18的用户(注意空格)
SELECT * FROM users WHERE age > 18;

示例 2:多行注释(/* ... */)

代码语言:javascript
代码运行次数:0
复制
/*
  目的:查询活跃用户的订单信息
  作者:Hunyuan
  日期:2024-06-01
*/
SELECT 
    o.order_id,
    u.username
FROM orders o
JOIN users u ON o.user_id = u.user_id
WHERE o.status = 'active';

示例 3:内联注释(代码中解释)

代码语言:javascript
代码运行次数:0
复制
SELECT 
    user_id,    -- 用户唯一ID
    username,   # 登录名
    email       -- 联系方式
FROM users
WHERE is_active = 1;  /* 只查询激活用户 */

示例 4:注释掉代码块(调试用)

代码语言:javascript
代码运行次数:0
复制
SELECT 
    u.user_id,
    u.name,
    o.order_date
FROM users u
-- WHERE u.is_vip = 1
JOIN orders o ON u.user_id = o.user_id
WHERE o.order_date > '2024-01-01';

✅ 上面 SQL 中 WHERE u.is_vip = 1被注释掉了,不会生效

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL语句注释的妙用

前言  今天在学习MySQL时学到SQL语句时,发现其也是存在存在注释的,我就不是很明白这样的注释到底有啥用?在与度娘一番攀谈交心后得出了答案。在此记录一下。  ...MySQL里面的SQL语句,里面是可以加注释的  例如: "select * from author where authorid=1" 也可以写成 "/* get a author */select...那好看下面:  1、在PHP里面的设定sql语句 $sql = '/* FILE: ' . __FILE__ . ', LINE: ' . __LINE__ . ' */ ' ....6、访问量大或者程序写得烂的时候,数据库系统往往会出现进程过多的情况,很多mysql语句排队等待执行,这个时候,找到最耗资源的SQL语句是当务之急。...有了SQL注释,我们能够迅速定位到卡死系统的sql语句是哪个php文件的哪一行。然后到那里仔细推敲代码,解决问题。 本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。

64220
  • MySQL常用SQL语句大全

    :     >SELECT * FROM tb_name WHERE id=3;   2、HAVING 语句:     >SELECT * FROM tb_name GROUP BY score...BETWEEN a AND b、NOT     AND 、OR     Linke()用法中 % 为匹配任意、 _ 匹配一个字符(可以是汉字)     IS NULL 空值检测 八、MySQL...的正则表达式:   1、Mysql支持REGEXP的正则表达式:     >SELECT * FROM tb_name WHERE name REGEXP ‘^[A-D]’ //找出以A-D 为开头的...九、MySQL的一些函数:   1、字符串链接——CONCAT()     >SELECT CONCAT(name,’=>’,score) FROM tb_name   2、数学函数:     ...*)>1;   2、条件使用Having;   3、ORDER BY 排序:     ORDER BY DESC|ASC    =>按数据的降序和升序排列 十一、UNION规则——可以执行两个语句

    3.5K20

    史上最强最常用SQL语句大全【超详细注释】

    史上最强最常用SQL语句大全【超详细注释】 摘要 作为数据库操作的核心工具,SQL(结构化查询语言)在数据管理和查询中扮演着至关重要的角色。...本文将全面介绍最常用的SQL语句,覆盖数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据控制语言(DCL)。通过丰富的代码示例和详细注释,帮助您深入理解和灵活运用SQL。...本文将系统性地介绍最常用的SQL语句,并为每个语句提供详细注释和实际案例,帮助您在实际项目中得心应手地使用它们。...本文详细介绍了常用的SQL语句,通过丰富的案例和详细注释帮助您深入理解每个语句的使用方法。 未来展望 随着数据库技术的不断发展,SQL 语句和数据库操作的方式也在不断演变。...我们将继续更新和完善这份SQL语句大全,欢迎大家持续关注。 参考资料 MySQL 官方文档 PostgreSQL 官方文档 SQL Server 官方文档 SQLite 官方文档

    6.4K32

    mysql使用基础 sql语句(一)

    命令行输入mysql -u root -p,回车再输入密码,进入mysql。 终端命令以分号作为一条语句的结束,可分为多行输入,只需在最后加上分号即可。...关键字:CREATE ALTER DROP ①查询数据库: 显示目前有几个库,输入: mysql>SHOW DATABASES;  ②创建数据库: 创建一个名称为mydb1的数据库: mysql>CREATE...DATABASE mydb1; 查看数据库的创建细节 :mysql>SHOW CREATE DATABASE mydb1; 创建一个使用gbk字符集的mydb2数据库: mysql>CREATE...test: 首先要选择数据库: mysql>USE test; ①显示表的信息: 显示当前数据库中的所有表格: mysql>SHOW TABLES;  查看表结构的定义: mysql>DESC employee...;  查看表的创建细节: mysql>SHOW CREATE TABLE user; ②创建表: 创建一个员工表: mysql>CREATE TABLE employee( id int,

    1.6K100

    Sql 语句是如何经过 MySQL

    mysql体系结构 mysql的题解结构可以分成3个部分。...列举如下: mysql-client: 比如一个命令行,或者使用java的JDBC发送sql语句 mysql-server: 分为5个部分 连接器 (管理连接权限认证) 查询缓存 (命中则缓存起来) 分析器...sql语句的执行过程 一条sql语句在mysql体系中的流转过程: 1,连接器:首先打开命令行,指令:mysql -h− {port} -u${user} -p ,输入密码。...; mysql8.0之后移除了查询缓存; 3,分析器:解析语法和词法,如果语法错误,会直接给出提示; 4,优化器:比如join语句执行方法的逻辑,如何选择索引等; 5, 执行器:核对执行权限,调用存储引擎的接口...小结 本节介绍了mysql的体系结构。 然后跟踪了一条查询sql在体系结构中流转过程。

    1.5K10

    MySQL基本命令-SQL语句

    服务端命令SQL 在数据库系统中,SQL语句不区分大小写(建议用大写) SQL语句可单行或多行书写,以“;”结尾 关键词不能跨多行或简写 用空格和缩进来提高语句的可读性 子句通常位于独立行,便于编辑...,提高可读性 注释: SQL标准: /*注释内容*/ 多行注释 -- 注释内容 单行注释,注意有空格 MySQL注释: # SQL优化 查询时,能不要*就不用*,尽量写全字段名 大部分情况连接效率远大于子查询...多表连接时,尽量小表驱动大表,即小表 join 大表 在千万级分页时使用limit 对于经常使用的查询,可以开启缓存 多使用explain和profile分析查询语句 查看慢查询日志,找出执行时间长的...sql语句优化 sql查询:单表查询和多表查询 两张表合并:横向合并、纵向合并 纵向合并:两张表挑出相同的字段进行合并(注意顺序) 范例 SQL查询范例 1、给表的字段名添加别名 select stuid

    1.3K20

    MySQL指南之SQL语句基础

    ---- 零、结构化查询语言:SQL(Structured Query Language) DDL 数据定义语言 管理库,表 DML 数据操作语言 增删改查 DCL 数据控制语言...来一波字符串操作 MySQL查询LEVER2.png 1.建表语句 CREATE TABLE pic( id INT UNSIGNED AUTO_INCREMENT PRIMARY...| +----------------------+--------+ ---- 三、子查询 (LEVER 3) 1.查询大于平均尺寸的图片 -- WHERE |--- 出现在其他SQL...语句内的SELECT语句 |--- 子查询必须在()内 |--- 增删改查都可以进行子查询,返回:标量,行,列或子查询 |-- 1-1:查出图片平均大小 SELECT ROUND(AVG(pic_length...全(外)连接 (伪):使用UNION MySQL不支持全外连接,所以只能采取关键字UNION来联合左、右连接的方法 UNION : 将若干条sql的查询结果集合并成一个。

    5.1K30
    领券