按 ⌘K 切换工具
FORMAT & CONVERT
SQL格式化工具
格式化SQL查询语句,支持选择SQL方言。
sql-format
§01 关于此工具
概述
这个工具使用广泛采用的 sql-formatter 库美化 SQL:关键字转为大写,SELECT、FROM、
WHERE、ORDER BY 等子句各占一行,选择列表也会拆开以便阅读。方言选择器会调整
MySQL、MariaDB、PostgreSQL、SQLite、BigQuery 和 Transact-SQL 的解析方式,
让各方言特有的运算符和引号形式得到正确处理。整理 ORM 生成的查询,
或者从日志里复制出来的单行语句时很好用。
从日志或 ORM 里捞出来的查询往往挤成一行,几百个字符看下来分不清连接条件和过滤条件 各自在哪。格式化之后子句的层次一眼可辨,做代码评审或者对着执行计划核对时都省事很多。
使用方法
- 在 Dialect 下拉框里选择你的数据库(
sql、mysql、postgresql、sqlite、mariadb、bigquery或transactsql)。 - 把查询粘贴到 SQL 输入框。
- 结果立刻出现在 Formatted 里;如果在所选方言下解析失败,错误会显示在输出上方。
示例
-
select id,name from users where active=1 order by name→SELECT id, name FROM users WHERE active = 1 ORDER BY name
说明
如果一条本该合法的查询报错,换个方言再试——厂商特有的语法在通用的 sql 设置下
经常解析失败。关键字大小写固定为大写,不可调整。
另外,格式化只是排版,不是校验:能被格式化出来, 并不等于这条查询在你的数据库上能跑通。
FAQ
我的查询会被发送到服务器吗?
不会。格式化完全在浏览器内通过开源的 sql-formatter 库完成,包含表名、schema 或内嵌值的查询不会离开你的机器。
支持哪些 SQL 方言?
共有七个选项:标准 sql、mysql、mariadb、postgresql、sqlite、bigquery 和 transactsql(SQL Server)。选对方言很要紧,因为 PostgreSQL 的类型转换(::)、BigQuery 的反引号或 T-SQL 的方括号标识符都是方言特有的语法。
格式化会改变查询的行为吗?
不会。格式化只重排空白、换行和关键字大小写(关键字统一转为大写),标识符、字面量和查询语义都保持原样。