SQL 格式化工具

在浏览器中格式化 SQL 查询。选择方言和缩进宽度即可。完全不会上传数据。

输入 SQL

粘贴或输入 SQL,也可以选择一个 .sql 文件。

输出

按上面选择的方言和缩进格式化,随时可复制或下载。

在上方粘贴或输入 SQL,或选择一个文件,结果会显示在这里。

无需离开浏览器即可格式化 SQL

粘贴查询语句、直接输入,或选择一个 .sql 文件。选择与你所写 SQL 接近的方言(标准 SQL、MySQL、PostgreSQL、SQLite 或 MariaDB)和 2 或 4 个空格的缩进,关键字、子句和 JOIN 周围的换行与缩进就会被重新整理。

格式化由开源库 sql-formatter 完成。它只会重新排列关键字、子句和 JOIN 周围的空白和换行,不会自行重写标识符或改变关键字大小写。它是一个宽容的分词器,而不是针对某个数据库语法的严格解析器,因此不会检查查询是否有效或能否真正运行——如果它完全无法理解输入内容,会原样显示抛出的错误,而不会凭空编造内容。

为什么你的 SQL 不会离开你的设备

这里的隐私保护是结构性的,而不是一句承诺。因为没有可以上传的服务器,所以根本不存在上传这一步。粘贴到格式化工具中的 SQL 往往是针对生产数据的真实查询,常常包含你不想发送到别处的表名或列名,这一点在这里尤为重要:

  • 格式化完全在你的浏览器中进行,使用 sql-formatter 库完成。
  • 本页面以静态文件形式提供,不会发出携带你的 SQL 的请求。
  • 源代码是开放的,任何人都可以阅读(MIT 许可)。
  • 可以离线使用,这也正是因为没有任何数据离开设备才得以实现。

如果你想自行验证,可以在格式化时打开浏览器的网络面板——不会有任何请求携带你的数据。 查看源代码。

使用方法

  1. 添加你的 SQL

    粘贴到文本框中、直接输入,或点击选择一个 .sql 文件。将文件拖放到页面任意位置同样可以加载。

  2. 选择方言和缩进

    选择与你所写 SQL 接近的方言(标准 SQL、MySQL、PostgreSQL、SQLite 或 MariaDB),以及 2 或 4 个空格的缩进。

  3. 检查结果

    如果格式化工具无法理解该查询,会显示它报告的原始错误,帮助你定位并修复问题——不会有任何猜测或编造的内容。

  4. 复制或下载结果

    可以将格式化后的查询复制到剪贴板,或以 .sql 文件下载。

常见问题

我的 SQL 会被上传到什么地方吗?

不会。格式化完全在你的浏览器中进行。因为没有服务器组件,你的查询根本没有离开设备的途径。源代码是开放的,你可以在浏览器的网络面板中亲自确认这一点。

支持哪些 SQL 方言?

下拉菜单提供标准 SQL(通用默认选项)、MySQL、PostgreSQL、SQLite 和 MariaDB——这是从底层 sql-formatter 库支持的方言中挑选出的一组实用子集。对于简单查询,标准 SQL 通常也能得到不错的效果;如果查询使用了特定数据库的专有语法,请选择对应的方言。

这个工具会检查我的 SQL 是否正确,或者能否真正运行吗?

不会。sql-formatter 是一个宽容的分词器,而不是针对某个特定数据库语法的严格解析器——它只是重新排列空白,并不会针对真实的数据库引擎完整校验语法或语义。格式化成功并不能证明查询能够运行;格式化失败也不一定意味着这对你的数据库来说是无效的 SQL(也可能只是这个工具无法对其进行分词)。

如果格式化失败会怎样?

会原样显示格式化工具抛出的确切错误信息,不会在此基础上添加任何改写或猜测。如果信息看起来比较技术化,那是因为它如实展示了该库实际报告的内容。

格式化会改变查询本身的内容吗?

只会改变空白和换行。关键字、标识符和字面量都会保持你所写的原样——这个工具不会重命名任何内容,不会改变关键字的大小写,也不会改变查询的逻辑。

可以离线使用吗?

可以。它是一个 PWA。首次访问后会被缓存,因此没有网络连接也能进行格式化。你还可以将它添加到主屏幕进行安装。