SQL 格式化与空白压缩可以处理什么?
SQL 格式化使用所选方言识别查询语法,将关键字、子句和缩进整理为可读文本。空白压缩保留字符串、带引号的标识符、注释及提示,只合并其他多余空白;部分有语义的换行会保留。两种模式均不执行 SQL。
如何选择格式化或空白压缩?
代码审查和排查问题时选择格式化;需要更紧凑的文本时选择空白压缩。压缩结果可能仍有注释或换行,因此不保证为一行。格式化不检查数据库表结构、权限或查询性能。
如何使用?
- 在“操作”中选择“格式化 SQL”或“压缩空白”,并选择与查询一致的数据库方言。
- 将不超过 2 MB 的 SQL 粘贴到输入框,点击“转换”;修改输入或方言后也会自动重新处理。
- 核对字符串、参数和注释,复制结果或下载 .sql 文件;需要执行时,请在目标数据库中另外验证。
实际输入输出示例
压缩简单查询的换行
输入
SELECT id, name
FROM users
WHERE active = true;输出
SELECT id, name FROM users WHERE active = true;仅将子句之间的换行合并为空格;保留逗号和等号两侧已有的间隔。字符串内部的重复空格、注释及提示不会被删除。
常见错误与修复方法
| 现象 | 可能原因 | 修复方法 |
|---|---|---|
| 格式化在特定语法附近失败。 | 所选方言不识别查询中的数据库专用语法。 | 选择实际使用的 MySQL、PostgreSQL、SQL Server、SQLite 或 BigQuery 方言;存储过程和自定义分隔符可能不受支持。 |
| 格式化后 SQL 仍无法执行。 | 文本格式化没有数据库表结构、权限和运行参数信息。 | 在目标数据库的解析器或测试环境中检查查询,不能把格式化成功当作执行验证。 |
| 压缩提示引号或注释未闭合。 | 字符串、标识符或块注释缺少结束标记,或选错了方言。 | 检查引号和注释边界,并选择正确的数据库方言后重试。 |
处理范围与限制
SQL 不会被执行或上传。格式化不是查询优化器,也不验证存储过程和数据库模式;空白压缩保留注释、执行注释和优化器提示。不同数据库的引用规则存在差异,应以目标数据库的行为为准。
标准与实现参考
- sql-formatter 官方仓库 (opens in a new tab)列出格式化器的方言、选项及存储过程等支持范围;空白压缩由本站实现。
关于SQL 格式化与空白压缩的常见问题
SQL 会上传或执行吗?
不会。格式化、空白压缩、复制和下载均在当前浏览器标签页完成,不连接数据库。
支持哪些方言?
页面可选择标准 SQL、MySQL、PostgreSQL、SQL Server、SQLite 和 BigQuery。选择与实际数据库一致的方言。
压缩会删除字符串内的空格或注释吗?
不会。压缩保留字符串、带引号的标识符以及注释中的内容,只合并它们之外的多余空白。
格式化成功代表查询正确吗?
不代表。仍需检查表结构、权限、参数、执行计划以及目标数据库是否接受该语法。
更新记录
补齐中文操作说明、示例、FAQ 与错误修复,改为保留引号和注释的空白压缩,增加 2 MB 输入限制及 SQL 文件下载。