SQL 格式化与压缩工具

一站式 SQL 美化与压缩:支持关键字大小写转换、主子句换行、JOIN 前换行、AND/OR 前换行、 子查询缩进、CASE/WHEN 缩进、逗号后空格或换行、2/4 空格缩进切换; 压缩模式可移除多余空白与换行,可选移除注释;内置基础语法校验 (引号 / 括号 / 块注释闭合),关键字 / 字符串 / 数字 / 注释分色高亮; 提供 SELECT / JOIN / INSERT / UPDATE / DELETE / CREATE 共 6 个常见 SQL 模板。 所有处理在浏览器本地完成,零上传、零追踪。

格式化选项
行数:1字符数:135
格式化结果
SELECT id, name, email, created_at
FROM users
WHERE status = 'active' AND created_at >= '2024-01-01'
ORDER BY created_at DESC
LIMIT 10;
关键字:8字符串:2数字:1行数:5
✓ 校验通过

常见问题

为什么要对 SQL 进行格式化?

SQL 格式化将关键字统一大写、按主子句换行、对齐缩进,让长 SQL 语句的层次结构一目了然。 这有助于团队协作中快速阅读和理解查询逻辑、定位 WHERE 条件、排查 JOIN 关系错误, 也是代码评审与文档归档的基本要求。本工具支持 2/4 空格缩进、逗号后空格或换行等多种风格, 可适配不同团队的编码规范。

支持哪些 SQL 方言?

本工具基于关键字词法分析,不绑定具体数据库方言,对 MySQL、PostgreSQL、SQLite、 Oracle、SQL Server、MariaDB 等主流关系型数据库的 SQL 语句均可格式化与高亮。 其中 MySQL 的 # 行注释、` 反引号标识符引用、 PostgreSQL 的 $n 位置参数、:: 类型转换运算符均被识别。 但方言特有的内置函数与系统视图不会被特殊处理,仅按通用标识符识别。

如何处理字符串中的单引号转义?

SQL 标准使用 ''(两个连续单引号)表示字符串字面量中的单引号字符, 例如 'It''s a test'。本工具的词法分析正确识别该转义规则, 不会将字符串内部的 '' 误判为字符串结束。同理,双引号标识符 (标准 SQL 中表示列名 / 表名)与 MySQL 反引号引用也被识别为独立的 token。

压缩模式与美化模式有什么区别?

美化模式(Format)会按可读性最大化原则换行、缩进、补空格,适合阅读与团队评审; 压缩模式(Minify)则移除所有多余空白与换行,仅保留必要的单个空格分隔 token, 适合存储到日志、URL 参数、配置文件等对体积敏感的场景。压缩模式可选移除注释, 美化模式默认保留注释原样。

能校验 SQL 语法错误吗?

本工具提供基础语法校验,能检测以下常见错误:① 字符串或标识符引号未闭合; ② 括号不配对(左括号多于右括号或反之);③ 块注释 /* 未闭合; ④ SELECT 语句缺少 FROM 子句(提示,非错误);⑤ 语句末尾缺少分号(提示)。 但不做完整语法分析,无法检测字段不存在、类型不匹配、JOIN 关系错误等数据库层面的问题, 这些需依赖具体数据库的 EXPLAIN 或预编译校验。

语法高亮使用了哪些颜色规则?

本工具将 SQL 分为 7 类 token 并分别着色:① 关键字(SELECT、FROM、WHERE 等); ② 字符串字面量(单引号包裹);③ 数字字面量(含小数与十六进制); ④ 注释(行注释 -- / #,块注释 /* */); ⑤ 标识符(表名、列名、函数名);⑥ 参数占位符(?:name@name$n);⑦ 标点(逗号、括号、分号、运算符)。 颜色在浅色与暗色模式下均经过对比度调校,符合 WCAG AA 标准。

支持子查询和 CASE WHEN 的缩进吗?

支持。子查询(WHERE id IN (SELECT ...))会自动增加缩进, 右括号 ) 与子查询内容对齐;CASE / WHEN / THEN / ELSE / END 遵循标准缩进规则:CASE 后换行并缩进,每个 WHEN 单独一行,END 与 CASE 对齐。 多层嵌套时缩进按深度累加,最多无上限(实际可读性建议不超过 4 层)。

数据会上传到服务器吗?

不会。本工具完全在浏览器内运行,所有格式化、压缩、校验、高亮逻辑由 JavaScript 在你本地执行,不会发送任何输入或输出到服务器。可在内网环境、离线环境使用, 适合处理包含敏感业务逻辑的 SQL 语句。