SQL 格式化
关键字自动换行、缩进对齐,子查询一目了然。
什么是 SQL 格式化?
SQL 格式化是把挤成一行的 SQL 语句重新排版的过程:在 SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY、HAVING、LIMIT 等关键字前换行,让每一条子句各占一行;按括号深度缩进子查询;并用统一的空格把关键字、逗号、运算符分隔开。整理后的语句结构清晰,阅读和维护都方便得多。
本工具采用词法切分的方式处理:先把语句切成字符串、注释、标识符、括号、逗号等词法单元,再按规则重新拼接。这样即使字符串里出现关键字、注释里出现括号,也不会被误拆。工具保持关键字与标识符的原始大小写,不修改任何内容,只调整排版,因此格式化不会改变语句的执行结果,可以放心用于线上脚本的整理。
适用于:从日志或调试输出中复制出来的单行 SQL、团队代码规范要求的多行格式、需要写进文档的示例语句等场景。
使用步骤
- 将需要格式化的 SQL 语句粘贴到输入框;
- 点击「格式化」按钮,结果会显示在下方输出框;
- 检查关键字换行与子查询缩进是否符合预期;
- 点击「复制」按钮,把格式化后的语句粘贴回编辑器或文档。
常见问题
格式化会修改我的 SQL 语义吗?
不会。工具只做词法层面的排版:在 SELECT、FROM、WHERE、JOIN、GROUP BY 等关键字前换行,按括号深度缩进子查询,字符串与注释原样保留,不改变任何关键字、表名或参数,也不会自动大写关键字,原始大小写保持不变。
支持哪些数据库方言?
工具基于通用 SQL 关键字切分,不绑定具体数据库,MySQL、PostgreSQL、SQL Server、SQLite 等常用方言的语句都能处理;方言特有的函数名也会被当作普通标识符保留。
字符串里的关键字会被误换行吗?
不会。切分时单引号、双引号、反引号包裹的字符串内容会被整体当作一个词法单元,字符串内部即使出现 FROM、SELECT 等字样也不会被拆开换行。
注释会被保留吗?
会。-- 行注释、# 注释和 /* ... */ 块注释都会原样保留在对应位置,方便格式化后继续阅读代码。
子查询是怎么缩进的?
工具维护括号深度:遇到左括号深度加一,遇到右括号减一,缩进宽度随深度增加,因此子查询和括号内的嵌套语句会自动对齐。