SQL 格式化
SQL 美化缩进与压缩成单行,关键字大写,格式化在浏览器本地完成,SQL 语句不会上传。
使用说明
把压缩成一行的 SQL 按 SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY 等关键字换行缩进,关键字可一键大写,字符串字面量与注释原样保留,也能反向压缩成单行;处理全部在浏览器本地完成,SQL 语句不会上传。
- 把 SQL 语句粘到上方输入框,整段压缩在一起或已经带换行都可以,点「格式化」输出美化后的结果。
- 勾选「关键字大写」后,识别到的关键字会转成大写,表名、字段名与函数名保持你输入的大小写;取消勾选则完全保留原始大小写。
- 美化时 SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT、UNION 从行首开始,JOIN、ON、AND、OR 缩进两个空格,GROUP BY 与 ORDER BY 的 BY 留在同一行。
- 点「压缩成单行」会去掉换行、多余空格与 -- 行注释,单引号字符串里的空格与分号原样保留,方便贴进只允许单行的配置项。
- 点「复制」或「下载 .sql」取走结果;输入为空时会给出提示,字符串引号没闭合时按原样输出,不会抛异常中断页面。
常见问题
- 字符串里的 -- 会被当成注释删掉吗?
- 不会。扫描器先识别单引号、双引号与反引号包裹的字符串,再判断注释,因此 '--not-comment' 这样的字面量会被完整保留。压缩模式下只删除真正的 -- 行注释与 /* */ 块注释,字符串内容不变。
- 为什么括号里的 AND 没有换行?
- 格式化只在括号外换行,避免把 IN (a AND b) 或子查询拆得七零八落。需要拆开括号内的条件时,可以先把括号去掉重新格式化,或手工调整缩进。
- 格式化会不会改变 SQL 的语义?
- 不会。工具只调整空白与关键字大小写,不重排、不增删任何 token,压缩时也只去掉注释与多余空白。不过格式化后仍建议先在测试库执行一次,确认注释移除没有影响依赖注释的提示语句(如 MySQL 的 /*! ... */ 优化器提示会随块注释一起被删掉)。