SQL 格式化与美化工具
粘贴一段杂乱的查询,即可得到整洁、缩进一致的 SQL。支持 17 种方言、关键字大小写设置和一键压缩,全部在浏览器中完成。
在浏览器中运行无需注册不上传任何数据
格式化后的 SQL
如何使用SQL 格式化工具
- 把一条或多条 SQL 语句粘贴到输入框,或打开一个
.sql文件。 - 选择你的数据库方言,以便正确解析其语法,例如
::类型转换、[brackets]、反引号或$$字符串。 - 设置关键字大小写(大写、小写或保持原样)、缩进以及语句之间的空行数。
- 切换到压缩,为日志、ORM 或 URL 参数去除注释和空白。
- 复制结果,或下载为
.sql文件。
为什么要格式化 SQL?
从 ORM 日志、查询计划或应用代码中复制出来的查询通常是一长行。把每个子句(SELECT、FROM、JOIN、WHERE、GROUP BY)放在单独一行,并对列和条件进行缩进,可以让逻辑清晰易读。这还能让代码审查的 diff 更小,帮助你发现遗漏的连接条件或放错位置的 OR。
SQL 代码风格约定
- 关键字大写(
SELECT、WHERE)可以把 SQL 语法与表名和列名区分开。大多数风格指南都推荐这样做,不过在 dbt 和数据分析团队中小写也很流行。 - 每行一列,这样增删列时 diff 只有一行。
- 在子句和子查询中保持一致的缩进(2 或 4 个空格),嵌套层次一目了然。
- 语句结束符:每条语句都以
;结尾,让多语句脚本没有歧义。
支持的 SQL 方言
标准 SQL、PostgreSQL、MySQL、MariaDB、SQLite、Microsoft SQL Server(T-SQL)、Oracle PL/SQL、Google BigQuery、Snowflake、Amazon Redshift、Spark SQL、Trino/Presto、Hive、IBM Db2、Couchbase N1QL、SingleStore 和 TiDB。如果查询解析失败,请尝试更具体的方言:@variables、$1 参数和厂商特有的运算符只会在各自的方言中被识别。
压缩功能做了什么
压缩模式会删除 --、# 和 /* */ 注释,把空白和换行合并为单个空格,并去掉逗号和括号两侧的空格。字符串字面量和带引号的标识符('…'、"…"、`…`、[…]、$$…$$)会逐字节保留,因此查询的含义永远不会改变。
常见问题
我的 SQL 会被发送到服务器吗?
不会。格式化使用在你浏览器中运行的开源库 sql-formatter。包含表名、客户数据或凭证的查询都会留在你的电脑上。
格式化会改变查询的行为吗?
不会。只有空白、换行以及(如果你选择的话)关键字大小写会改变。标识符、字符串字面量和注释都会按原样保留。
为什么合法的 SQL 会出现解析错误?
该查询可能使用了其他数据库特有的语法。请选择对应的方言,例如
::type 类型转换选择 PostgreSQL,[bracketed] 名称和 @params 选择 SQL Server。可以一次格式化多条语句吗?
可以。用分号分隔各条语句。你可以选择输出中语句之间空几行。
关键字大小写设置会改变我的列名吗?
不会。只有保留关键字、数据类型和内置函数会改变大小写。表名和列名保持原有拼写。