跳转到内容
100% 隐私保护 — 文件永远留在你的设备上
>_
简体中文

SQL 格式化与校验工具

美化或压缩 SQL,并精确到行和列地找出语法错误——支持 20 种方言,全程在浏览器中完成。

所有处理都在浏览器中完成,你的 SQL 不会上传到任何服务器。

选项
1 行 · 0 B

拖入 .sql 或 .txt 文件、直接粘贴,或加载示例。按 Ctrl+Enter 运行。

语法检查

粘贴 SQL 即可检查语法。

“有效”只表示语法符合该语法规则。检查器没有数据库结构信息,无法判断表或列是否存在,也无法判断查询能否执行。方言特有的或非常新的语法,即使你的数据库支持,也可能被拒绝。

在浏览器中格式化、压缩并检查 SQL

排版清晰的 SQL 更容易评审、调试和比对差异。这个工具会用统一的缩进、换行和关键字大小写重写查询,并理解约二十种方言的各自写法,包括 MySQL、PostgreSQL、SQL Server (T-SQL)、SQLite、BigQuery、Snowflake、Redshift、Oracle PL/SQL、Hive、Spark、Trino 和 DB2。你可以选择方言,选用两个或四个空格或制表符缩进,决定关键字、数据类型和函数名用大写、小写还是保持原样;如果团队习惯把逗号放在行首,也可以一键切换。

语法检查是另一半功能。粘贴一段脚本后,每条语句会被单独校验,你能看到哪些通过、哪些没通过。出错时会显示行号和列号、出问题的词、几行上下文,并在可能时给出提示,例如关键字拼写错误、多余的尾部逗号或未闭合的括号。拆分语句时会考虑字符串、注释、反引号、方括号以及 PostgreSQL 的美元符号引用块,所以字面量中的分号不会把一条语句从中间截断。

压缩与格式化相反:它合并空白,并可按需删除注释,得到紧凑的单行查询,方便用于日志、配置文件或嵌入代码。它按词法单元处理而不是用正则表达式,因此字符串和带引号名称里的文字会保持原样。

请了解它的局限。绿色的检查结果只能证明语法符合所选的语法规则,不能证明表确实存在,也不能证明查询又快又对。部分方言、过程化代码块和最新特性只获得部分支持,少数方言没有专用检查器,这时你可以自己选一个最接近的语法。所有处理都在本地完成,可以放心粘贴生产环境的查询;文件很大时,实时预览会暂停,等你点击按钮再运行。

常见问题

显示“有效”就代表查询能运行吗?

不能。检查器只验证语法。它无法访问你的数据库,所以不知道表或列是否存在、类型是否兼容、你是否有权限。它使用自己的语法规则,因此全新的或特定厂商的语法,即使你的数据库支持,也可能被拒绝。绿色结果只表示“SQL 写得规范”,红色结果表示“请看看这个位置”。

我的 SQL 会被上传吗?

不会。格式化、压缩和语法检查都在浏览器的后台线程中完成,不会向服务器发送任何内容。可选的草稿和你的设置只保存在本浏览器的本地存储中。

为什么格式化成功了,检查器却报错?

这是两个不同的工具。格式化器只需要识别词法单元和子句,所以比较宽容;检查器则使用所选方言的完整语法,要求更严格。两者结果不一致时会显示警告:结果依然会给出,但被标记的那一行值得看一眼。

压缩会改变查询的行为吗?

它只会删除空白和注释。字符串、带引号的标识符、美元符号引用的代码块以及优化器提示都会逐字符原样保留,原本相连的内容仍然相连。为稳妥起见,不要压缩依赖换行的脚本,例如 MySQL 的 DELIMITER 块。

相关工具