# SQL格式化使用教程：一键美化压缩，让SQL清晰易读

> 来源：工具派（https://gjupai.com） 原文页面：https://gjupai.com/tutorial/sql-formatter-guide

## 工具简介

**SQL 格式化/美化**是工具派提供的在线 SQL 整理工具。只要把杂乱无章的 SQL 语句粘贴进输入框，工具就会**自动**完成格式化：关键字换行对齐、子句缩进、多语句分隔，并附带彩色语法高亮，让一行"面条式" SQL 瞬间变得层次清晰、易于阅读和维护。

它的核心能力包括：

- **一键美化**：`SELECT`、`FROM`、`WHERE`、`JOIN`、`GROUP BY`、`ORDER BY`、`HAVING`、`LIMIT` 等子句自动分行缩进，`AND`/`OR` 条件单独成行，多表 JOIN 的 `ON` 条件二次缩进。
- **压缩模式**：把所有多余空白、换行压缩成单行 SQL，方便嵌入代码或日志。
- **关键字大小写切换**：支持关键字统一转为**大写**、**小写**或**保留原样**，团队规范一秒统一。
- **注释处理**：可选择保留或移除 `--` 单行注释和 `/* */` 多行注释。
- **语法高亮**：关键字紫色加粗、字符串绿色、数字蓝色、注释灰色斜体，结构一目了然。
- **多语句支持**：一次粘贴多条以分号结尾的 SQL，工具会逐条格式化并用空行分隔。
- **示例与上传**：内置查询、插入、更新、多表查询、子查询、CTE、双语句 7 个示例；也支持直接上传 `.sql`、`.txt` 文件。

工具内置的关键字词库覆盖 MySQL、PostgreSQL、SQL Server、Oracle 等主流数据库的常用语法，做通用格式化，不绑定单一数据库方言。

## 适用场景

- **美化他人或历史遗留 SQL**：接手一段没有缩进、全部挤在一行的 SQL，格式化后才能看懂它的逻辑结构。
- **Code Review 前统一风格**：团队有人习惯关键字大写、有人习惯小写，用「关键字」选项一键统一，减少无谓的评审争论。
- **压缩 SQL 嵌入代码**：把多行 SQL 压缩为单行，方便写进 Java、Python 等语言的字符串或配置文件中。
- **学习复杂 SQL 结构**：遇到带 CTE（`WITH RECURSIVE`）、子查询、多表 JOIN 的长 SQL，格式化后层次一目了然，便于学习。
- **清理注释做比对**：移除注释后再格式化，可以排除注释干扰，快速对比两段 SQL 的真实差异。

## 使用步骤

### 1. 粘贴或上传 SQL

打开工具页面，左侧「SQL 语句」输入框默认已载入「查询示例」。你可以直接粘贴自己的 SQL；也可以点击输入框上方的示例按钮（**查询示例、插入示例、更新示例、多表查询、子查询、CTE、双语句**）体验不同场景；或者点击右上角「上传文件」，直接读取本地的 `.sql` 或 `.txt` 文件。

![工具主界面：左侧『SQL 语句』框已载入默认的查询示例SQL，上方排列着查询示例、插入示例、更新示例、多表查询、子查询、](article/202607/1783947375992_939.png)

### 2. 调整格式化选项

顶部选项栏可以按需调整：「缩进」选择 2 空格或 4 空格；「关键字」选择大写、小写或保留原样；「保留注释」决定 `--` 和 `/* */` 注释是否保留；「语法高亮」控制结果区是否彩色显示。所有选项修改后都会**立即自动重新处理**，无需额外点击。

![页面顶部选项栏特写：缩进下拉框（2空格/4空格）、关键字下拉框（大写/小写/保留原样）、保留注释复选框、语法高亮复选框、](article/202607/1783947376211_4256.png)

### 3. 选择格式化或压缩

输入框下方有三个按钮：**格式化**（默认模式，分行缩进美化）、**压缩**（去除多余空白压成单行）、**清空**（清除输入和结果）。点击即可切换，结果区实时更新。

![点击『压缩』按钮后的界面状态：格式化按钮变灰、压缩按钮高亮为蓝色，右侧结果区显示压成单行的SQL，与之前的多行排版形成对](article/202607/1783947376454_2612.png)

### 4. 查看并复制结果

右侧「结果」区域显示处理后的 SQL。开启语法高亮时，关键字、字符串、数字、注释会以不同颜色呈现；关闭高亮则显示为纯文本，方便全选。确认无误后点击右上角「复制」，结果即进入剪贴板。

## 参数与选项说明

| 参数 | 说明 | 默认值 / 可选值 |
| --- | --- | --- |
| 缩进 | 各子句的缩进宽度 | 默认 2 空格；可选 2 空格 / 4 空格 |
| 关键字 | SQL 关键字的大小写处理 | 默认大写；可选 大写 / 小写 / 保留原样 |
| 保留注释 | 是否保留 `--` 单行注释和 `/* */` 多行注释 | 默认勾选（保留） |
| 语法高亮 | 结果区是否以彩色显示关键字、字符串、数字、注释 | 默认勾选（开启） |
| 处理模式 | 「格式化」分行美化；「压缩」合并为单行 | 默认格式化 |
| 上传文件 | 从本地读取 SQL 文本填入输入框 | 支持 `.sql`、`.txt` |

## 实用技巧

- **先美化再阅读**：拿到陌生 SQL 的第一步永远是格式化——子句分行后，`JOIN` 关系、`WHERE` 条件、`GROUP BY` 维度会立刻清晰。
- **关键字统一用大写**：这是大多数 SQL 规范的通用做法，关键字大写、表名列名小写，可读性最好。
- **压缩模式适合嵌代码**：把 SQL 嵌入 Java 字符串或 shell 脚本前，先用「压缩」压成单行，省去手工拼接换行的麻烦。
- **比对 SQL 先去注释**：取消勾选「保留注释」再格式化，两段 SQL 的差异就只剩下真正的逻辑差异，配合 diff 工具效率更高。
- **多语句一次处理**：整段建表脚本或批量更新语句可以一次性粘贴，工具会按分号拆分逐条格式化，条与条之间自动空行分隔。
- **关闭高亮方便复制纯文本**：高亮视图适合阅读，如果要粘贴到某些对富文本不友好的环境，可以取消「语法高亮」后再复制。

## 常见问题

**Q1：工具会修改我的 SQL 语义吗？**

不会。格式化只调整空白、换行和缩进，压缩只移除多余空白；关键字大小写转换也只作用于关键字本身，字符串字面量（如 `'张三'`）和标识符不会被改动，SQL 的执行结果与原来完全一致。

**Q2：支持哪些数据库的语法？**

工具内置的关键字词库覆盖 MySQL、PostgreSQL、SQL Server、Oracle 等主流数据库的常用关键字和函数（如 `LIMIT`、`AUTO_INCREMENT`、`COALESCE`、`WITH RECURSIVE` 等），做通用的格式化与高亮，不针对某一种方言做深度解析，日常绝大多数 SQL 都能正确处理。

**Q3：一次可以格式化多条 SQL 吗？**

可以。把多条以分号 `;` 结尾的 SQL 一起粘贴进去即可，工具会逐条格式化，语句之间用空行分隔，并在末尾保留分号。可以点击「双语句」示例查看效果。

**Q4：压缩后的 SQL 还能还原吗？**

可以。压缩只是把空白合并为单个空格，重新点击「格式化」即可恢复分行缩进的排版，两种模式可以反复切换，不会丢失任何内容。

**Q5：上传文件有什么限制？**

点击「上传文件」可以选择本地的 `.sql` 或 `.txt` 文件，文件内容会以纯文本方式读入输入框，之后就和手动粘贴完全一样，所有格式化选项都照常生效。

