什么是SQL 格式化?
SQL 格式化工具把单行或缩进混乱的 SQL 语句重排为带换行与对齐的可读形式,支持 MySQL、PostgreSQL、SQL Server、SQLite、BigQuery 等方言的关键字差异。全程在浏览器内完成,SQL 不会上传。
怎么用SQL 格式化?
- 1粘贴 SQL 语句,可以是单条或多条(以分号分隔)。
- 2选择目标方言,不同方言对引号、函数与保留字的处理不同。
- 3选择关键字大小写风格(大写 / 小写 / 保持原样)与缩进宽度。
- 4复制格式化结果,或继续调整参数直到符合团队规范。
在代码里怎么实现?
一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。
Node.js
Python
import { format } from 'sql-formatter';
const pretty = format(sql, {
language: 'postgresql',
keywordCase: 'upper',
tabWidth: 2,
});常见错误与排查
| 现象 | 成因 | 修复 |
|---|---|---|
| 格式化后方言特有语法被拆错 | 选择的方言与 SQL 实际方言不一致,例如用 MySQL 解析 PostgreSQL 的 :: 类型转换。 | 把方言切换为语句实际使用的数据库。 |
| 带模板变量的 SQL 报错 | ORM 模板里的 {{ }} 或 :param 占位符不是合法 SQL 词法单元。 | 先把占位符替换成字面值再格式化,或保留原样忽略该段。 |
常见问题
SQL 格式化会执行我的语句吗?+
不会。工具只做词法与语法层面的重排,不连接任何数据库,也不解析数据内容。粘贴含真实表名的生产语句是安全的,因为内容不会离开浏览器。
支持哪些 SQL 方言?+
支持 MySQL、MariaDB、PostgreSQL、SQL Server(T-SQL)、SQLite、BigQuery、Snowflake、Spark SQL 等常见方言。方言影响保留字识别与引号规则,选对方言能得到更准确的换行位置。
为什么团队里同一条 SQL 格式化结果不一样?+
因为缩进宽度、关键字大小写与方言三项参数不同。建议在团队内固定一组参数,并把它写进代码规范,或者直接在 CI 里使用同一个格式化器。