SQL 格式化工具
使用可配置的缩进、关键字大小写以及对 MySQL、PostgreSQL 和 T-SQL 的方言支持,美化和格式化原始 SQL 查询语句。
格式化选项
SQL 输入
格式化后的 SQL
Formatted SQL will appear here…相关工具
关于 SQL 格式化工具
工作原理
- 将 SQL 分词为关键字、标识符、运算符和字面量
- 将子句关键字(SELECT、FROM、WHERE、JOIN 等)重新缩进到新行
- 完全按原样保留带引号的字符串、注释和标识符
- 应用您选择的关键字大小写(大写、小写或保留)
- 支持标准 SQL、MySQL、PostgreSQL 和 T-SQL 方言
常见使用场景
- 使 ORM 自动生成的查询可读以便调试
- 在代码审查中审查查询计划和执行逻辑
- 准备 SQL 用于文档或与团队成员共享
- 规范化日志文件中大小写混合或压缩的 SQL
- 清理机器生成的迁移脚本
常见问题
格式化工具支持哪些 SQL 方言?
格式化工具支持标准 SQL、MySQL、PostgreSQL 和 T-SQL(SQL Server)。选择方言后,工具会调整标识符引用提示和特定方言的关键字处理方式。
格式化会改变查询的含义吗?
不会。格式化工具只更改空白字符和关键字大小写,绝不会重写、重排或删除查询的任何部分。格式化后的输出与原始输入在语义上完全相同。
什么是逗号前置样式?
逗号前置样式将逗号放在列表中每个新项目的开头,而不是上一项的末尾。一些团队偏好此风格,因为它使在版本控制差异中发现缺少的逗号更容易。
为什么应该对 SQL 关键字使用大写?
对保留字(SELECT、FROM、WHERE 等)使用大写,对标识符(表名和列名)使用小写,是最广泛采用的 SQL 样式约定。这提高了可读性,并立即区分了语言关键字和用户定义的名称。
我可以一次格式化多个 SQL 语句吗?
可以。粘贴多个用分号分隔的语句,格式化工具将逐一处理。每个分号在输出中保留在其语句末尾。
单引号字符串和注释是否完全保留?
是的。分词器将单引号字符串、双引号标识符、反引号标识符、方括号标识符以及 -- 单行和 /* 块 */ 注释视为不透明令牌,其内容从不被修改。
该工具会将我的 SQL 发送到服务器吗?
不会。所有格式化均在您的浏览器中使用 JavaScript 完成。您的 SQL 查询永远不会传输到任何服务器,因此敏感的架构名称、列名和数据字面量保持完全私密。
有哪些缩进选项?
您可以选择 2 个空格、4 个空格或制表符作为缩进。2 个空格在 JavaScript 相关项目中很常见,而 4 个空格是许多 SQL 样式指南的标准。
为什么我的子查询输出与顶级查询不同?
括号内的子查询相对于其周围上下文缩进一个额外级别。这种嵌套直观地传达了逻辑层次结构,使在复杂查询中跟踪数据流更容易。
我可以格式化存储过程或 DDL 语句吗?
可以。格式化工具处理 CREATE TABLE、ALTER TABLE、INSERT INTO、UPDATE、DELETE 以及其他 DDL/DML 语句。CASE 表达式、BEGIN/END 块和窗口函数也能正确缩进。
为什么 JOIN 条件在新的一行?
将每个 JOIN 及其 ON/USING 条件放在单独的行上,可以清楚地表明哪些条件属于哪个连接,尤其是当查询有四个或更多连接时。这与最流行的 SQL 样式指南一致。
如何处理非常长的查询?
无论查询长度如何都可以完整粘贴——格式化工具完全在浏览器中运行,没有服务器往返,因此即使是包含数百行的大型查询也能即时格式化。