# SQL 压缩器

通过移除注释、换行和所有不必要的空格来压缩 SQL，同时保留字符串字面量、带引号的标识符和运算符。选择 MySQL、PostgreSQL、T-SQL 或 BigQuery 等方言，使引号、注释和批处理规则与你的数据库相匹配。压缩器会报告未闭合的字符串、注释和括号及其行号和列号，适合需要将查询嵌入代码中的开发者。

## 常见问题

### SQL 压缩器会移除什么？

它会删除行注释、块注释、换行符和缩进，并且只在两个单词或运算符原本会连在一起时保留一个空格。字符串字面量和带引号的标识符会保持原样。

### 为什么要选择一种方言？

不同数据库使用的引号和注释方式各不相同。MySQL 将 # 视为注释，并将反斜杠视为转义符；PostgreSQL 使用美元引号字符串；T-SQL 使用 [方括号] 和 GO 批次；BigQuery 则使用三重引号字符串。方言选项可确保字面量内部的内容不会被更改。

### 会保留某些注释吗？

会。MySQL 和 MariaDB 可执行注释、文本以版本标记开头的块注释，以及 /*+ INDEX(t) */ 这样的优化器提示都会保留，因为它们会影响语句的运行方式。其他注释都会被删除。

### GO、/ 和 DELIMITER 行会如何处理？

T-SQL 中的 GO、Oracle 脚本中的 / 行以及 MySQL DELIMITER 命令等批次分隔符会保留在单独的行上。客户端工具只会在这些位置识别它们，因此将它们与其他代码合并会导致脚本出错。

### 压缩会导致查询出错吗？

压缩器只会删除字面量之外的空白和注释，并会在运算符字符之间保留空格，因此 - -1 不会变成注释。查询的运行方式与之前相同。

### 会检测哪些错误？

未闭合的字符串字面量、带引号的标识符、块注释和美元引号字符串，以及不平衡的括号都会报告其行号和列号。它不会检查完整的 SQL 语法。

### 有哪些可用方言？

Standard SQL、MySQL、MariaDB、PostgreSQL、SQLite、T-SQL、PL/SQL、BigQuery、Snowflake、Redshift、Spark SQL、Hive、Trino 和 Db2。默认的 Standard SQL 使用单引号字符串，且不支持反斜杠转义；标识符可使用双引号、反引号和方括号。

### 它会更改关键字的大小写吗？

不会。关键字、标识符和函数会保留原来的大小写。只有空白和注释会被删除。

### 输入内容可以有多大？

每次请求最多可处理 1 MB 的 SQL。包含许多语句的长迁移脚本会一次性压缩完成。

### 我的 SQL 会被保存吗？

不会。查询会在内存中处理并立即返回。它们绝不会被保存，只会记录请求大小。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
