SQL Formatter 使用指南:3 步统一团队的 SQL 代码风格

📅 2026/8/24 10:06:38
SQL Formatter 使用指南:3 步统一团队的 SQL 代码风格
SQL Formatter 使用指南3 步统一团队的 SQL 代码风格【免费下载链接】sql-formatterA whitespace formatter for different query languages项目地址: https://gitcode.com/gh_mirrors/sql/sql-formatterSQL Formatter 是一款基于 JavaScript 的 SQL 格式化工具把挤成一行、大小写混乱的 SQL 变成缩进整齐、大小写规范的代码。它能当 npm 依赖、全局命令行工具或 API 用覆盖 MySQL、PostgreSQL、Snowflake 等方言。一条命令格式化单个 SQL 文件读完这块你可以按自己的身份挑一条命令把任意 SQL 文件格式化掉。你的场景最短路径只想格式化手头一个文件npx sql-formatter -l mysql query.sql -o query.formatted.sql写进自己的项目里调用npm install --save-dev sql-formatter接入团队 CI 流水线npx sql-formatter -c .sql-formatter.json src/01_init.sql -o dist/01_init.sql# 场景一临时格式化一个文件不用手动安装 npx sql-formatter -l mysql query.sql -o query.formatted.sql # 场景二作为依赖装进自己项目 npm install --save-dev sql-formatter # 场景三CI 里按团队配置批量格式化 npx sql-formatter -c .sql-formatter.json src/01_init.sql -o dist/01_init.sql跑完第一条命令当前目录会多出一个query.formatted.sql里面的 SQL 已经换行、缩进、统一了关键字大小写npx首次运行会自动拉取工具不需要预先装任何东西。⚠️-l后面跟的是方言名。常用取值见下表完整 18 种方言在 docs/language.md 里language取值对应数据库mysqlMySQLmariadbMariaDBpostgresqlPostgreSQLplsqlOracle PL/SQLtransactsqlSQL ServersqliteSQLitesnowflakeSnowflakebigqueryGCP BigQuery关键字全大写怎么设4 个核心配置选项读完这块你能在 10 秒内写出一份表达团队风格的配置文件。每个选项先说它管什么再给取值language按哪种方言的语法规则解析 SQL。比如mysql、postgresql、plsql。选错方言是后面大半问题的根源。keywordCase控制SELECT、FROM这类关键字的大小写。取值preserve保持原样、upper、lower。tabWidth一级缩进占几个字符宽数字。默认2。indentStyle整体缩进风格。取值standard常规逐级缩进、tabularLeft、tabularRight表格式对齐。⚠️ 后两个是旧版风格官方文档已标注弃用新配置用standard就好。{ language: mysql, keywordCase: upper, tabWidth: 2, indentStyle: standard }把它存成项目根目录下的.sql-formatter.json注意开头有个点。之后在这个目录里直接运行sql-formatter工具会自动沿当前目录和所有父目录向上找到它并加载不用再传-c。其余选项各管一件小事useTabs用 Tab 还是空格、functionCase和identifierCase函数名、标识符大小写、logicalOperatorNewlineAND/OR 换行位置、expressionWidth长表达式何时折行、linesBetweenQueries语句间空行等逐个说明见 docs/ 下的各篇文档。让编辑器保存时自动格式化读完这块文件落盘之前格式就已经统一了不用任何人记快捷键。VS Codecode --install-extension ReneSaarsoo.sql-formatter-vsc这条命令装完官方扩展后在设置里打开 Format On Save保存.sql文件时就会自动调用 SQL Formatter默认方言建议在扩展设置里和你配置文件的language保持一致。IDEA / WebStormnpx sql-formatter -c .sql-formatter.json --fix $FilePath$在 Settings 里新建一个 File Watcher把这行填进 Program勾选由 Autosave 触发即可。$FilePath$是 IDEA 的内置变量代表当前保存的文件命令跑完后该文件会被原地覆盖为格式化后的内容--fix就是原地改写。团队共享一份配置git add .sql-formatter.json提交这一份文件全员克隆仓库后就是同一套风格。 需要说明这个工具的配置文件目前不提供extends继承字段团队共享的正解就是维护单一来源的.sql-formatter.json靠 CLI 自动向上查找的特性在仓库任意子目录都生效。踩到这 5 个坑时先看这里读完这块大部分报错你能在 1 分钟内自行判断不用再翻 issue。症状先检查解法报 Parse error或某句 SQL 识别不了language值选对了吗按数据库挑方言比如 SQL Server 的方括号写法要用transactsql拿不准就用默认的sql提示找不到配置文件文件名和路径文件名必须叫.sql-formatter.json含开头的点是隐藏文件或给-c传明确的绝对路径格式化完执行反而报语法错方言是否选错换回正确的方言并设indentStyle为standard排除表格式缩进改变行结构的影响大文件处理很慢折行数量调大expressionWidth减少换行超大文件按语句拆成几段分别处理配置明明写了却不生效谁覆盖谁命令行传了-l且配置文件里也写了language时会互相覆盖只留一处来源并确认你运行的目录在配置文件所在目录之下从 v2 升级只需对照这 3 行v2.xv3.x 及以后sqlFormatter.format(sql, { indent: 2 })format(sql, { tabWidth: 2 })选项indent选项tabWidth默认导出sqlFormatter命名导出{ format }SQL Formatter 把谁该管 SQL 长什么样这件事从口头约定变成了配置和工具个人写脚本、团队进 CI 都能用同一套规则。更多选项细节看官方文档 docs/想了解方言差异或实现原理可以直接读源码 src/。【免费下载链接】sql-formatterA whitespace formatter for different query languages项目地址: https://gitcode.com/gh_mirrors/sql/sql-formatter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考