Loading…

关于 免费在线 SQL 格式化工具

粘贴任何 SQL 查询,选择您的方言和关键字大小写,然后点击“格式化”即可获得具有一致缩进和布局的清晰、可读版本。适用于 MySQL、PostgreSQL、SQL Server、BigQuery、Snowflake 等 – 全部在浏览器中直接格式化,仅客户端处理。

我们的 SQL 格式化器的强大功能

  • 实时格式化:在您输入或粘贴时自动美化 SQL(可切换实时预览)
  • 可自定义缩进:制表符或空格,缩进大小可调
  • 支持 PostgreSQL、MySQL、SQL Server、BigQuery、Snowflake 等多种方言的智能格式化
  • 智能关键字大小写(大写、小写或保留原样)
  • 可选在多个查询间添加空行以提升可读性
  • 优化 CTE、JOIN、CASE 表达式和子查询的视觉结构
  • 上传 `.sql` 脚本文件,支持浏览器内联编辑
  • 一键复制格式化后的查询到编辑器、IDE 或文档
  • 通过现代 SQL 格式化引擎实现 100% 客户端执行——无需服务器,无日志记录

🛠️ 如何像数据库专家一样格式化 SQL for sql-formatter

1

1. 插入您的 SQL

将查询粘贴到编辑器中或从系统上传 `.sql` 文件。语法高亮帮助您快速浏览结构、别名和连接。

2

2. 配置格式化选项

选择您的 SQL 方言(PostgreSQL、MySQL、SQL Server、BigQuery、Snowflake 等),选择缩进方式(制表符或空格),调整缩进大小并设置关键字大小写(大写、小写或保留原样)。

3

3. 转换您的查询

点击 **格式化**(或依赖实时预览)将您的 SQL 重新排版为整洁、缩进良好的布局。复杂的 CTE、CASE 表达式和嵌套子查询变得更容易阅读。

4

4. 复制、编辑或保存

查看结果,如有需要在格式化编辑器中直接调整,然后将 SQL 复制回您的 IDE、笔记本、迁移脚本或文档中。

技术规格

SQL 方言支持

格式化工具通过现代 SQL 解析引擎理解广泛的 SQL 方言:

方言支持级别关键特性
标准 SQL✅ 完整常见 ANSI SQL 结构
PostgreSQL✅ 完整CTE、窗口函数、JSON 操作符、高级连接
MySQL / MariaDB✅ 完整反引号标识符、LIMIT/OFFSET、常见 MySQL 语法
SQL Server (T-SQL)✅ 完整TOP、临时表、T-SQL风格函数
SQLite✅ 完整标准查询、简化方言
Snowflake✅ 完整数据仓库风格分析语法
BigQuery✅ 完整嵌套字段、UNNEST、分析查询模式
Redshift✅ 完整数据仓库分析,类似PostgreSQL
Oracle / PL/SQL✅ 部分多种PL/SQL结构,典型SELECT/DDL格式化
DB2、Hive、Spark、Trino/Presto、N1QL✅ 部分常见模式的核心SELECT/DDL格式化

格式化选项(映射至工具逻辑)

用户界面控件直接连接至底层SQL格式化引擎:

选项选择/范围默认值
缩进风格空格或制表符空格
缩进大小1–8个空格(使用空格时)2
SQL方言标准、PostgreSQL、MySQL、SQLite、T-SQL、Snowflake、BigQuery、Redshift、Hive、Spark、DB2、PL/SQL、N1QL、Trino/Presto标准SQL
关键字大小写大写、小写、保持原样大写
查询间空行0–5行0
实时预览开 / 关

行为与限制

格式化是确定性的且专注于布局:

方面行为备注
执行从不执行SQL仅解析和重写文本布局。
最大输入大小约 2 MB 的 SQL 文本对于大型生成查询,请运行本地 CLI 格式化工具。
多语句尊重语句终止符 (`;`)通过设置可在语句间添加可选空行。
幂等性相同输入 → 相同格式化输出可安全重复运行或在预提交钩子中使用。

命令行替代方案

想在本地工作流或 CI 管道中获得相同行为吗?使用 CLI 格式化工具:

所有平台

SQLFluff (Python,格式化 + 代码检查)

sqlfluff format --dialect postgres queries.sql

使用方言感知规则格式化和检查 SQL。非常适合 CI 和样式强制执行。

带 SQL 解析器的 Prettier

npx prettier --parser sql --write queries.sql

在 Web 和后台项目中使用一致的基于 Prettier 的 SQL 样式。

在预提交或 CI 中运行格式化工具,让拉取请求专注于逻辑,而非缩进争论。

实际应用场景

查询优化与调试

使复杂的分析查询更易于理解。

  • 在调试前,重新格式化包含多个 JOIN 和 CTE 的 300 多行报告查询。
  • 为团队在微服务间统一 SQL 样式指南的布局。
  • 直观检查嵌套括号、CASE 表达式和子查询中的逻辑错误。
WITH revenue AS (
  SELECT account_id, SUM(amount) AS total
  FROM payments
  WHERE created_at >= DATE '2024-01-01'
  GROUP BY account_id
)
SELECT a.id, a.name, r.total
FROM accounts a
LEFT JOIN revenue r ON r.account_id = a.id
ORDER BY r.total DESC NULLS LAST;

Documentation & Sharing

Present SQL cleanly in docs, wikis and code reviews.

  • 为API和BI文档准备格式美观的SQL代码片段。
  • 在提交到版本控制之前格式化迁移脚本。
  • 与利益相关者和数据分析师分享可读性强的查询示例。
-- 之前:难以阅读
select id,name,created_at from users where status='active' and created_at>now()-interval '30 days';

-- 之后:格式化后
SELECT
  id,
  name,
  created_at
FROM users
WHERE status = 'active'
  AND created_at > NOW() - INTERVAL '30 days';

分析、BI与数据科学

在笔记本和仪表板之间保持数据仓库和BI查询的一致性。

  • 在保存到BI工具前格式化BigQuery/Snowflake SQL。
  • 统一笔记本与生产流水线之间的查询风格。
  • 将杂乱的团队查询整理后再转换为可重用的视图。

❓ Frequently Asked Questions

这个工具会执行我的SQL查询吗?

不会。格式化器从不连接数据库或运行您的查询,它仅对有效的SQL进行文本布局(缩进、大小写、换行)的解析和重写。

🔄我可以切换关键字的大小写吗?

可以。使用**关键字大小写**选项在UPPER(大写)、lower(小写)或保留原始大小写之间选择。此设置会一致地应用于所有识别的SQL关键字。

实时格式化的速度如何?

对于典型查询(即使是1000+行),得益于优化的客户端SQL格式化引擎,格式化几乎是即时的。您可以根据偏好开启或关闭实时预览功能。

🔒我的敏感SQL数据安全吗?

安全。所有格式化完全在您的浏览器中进行——没有服务器调用、上传或日志记录。尽管如此,如果可以在本地格式化,您仍应避免在网络上粘贴高度机密的数据。

🧩如果我的SQL有语法错误会怎样?

如果输入内容过于畸形导致解析器无法处理,格式化器可能会返回错误或保留部分未更改。请修复明显的语法问题(如缺少逗号、括号不匹配等)后重试。

Pro Tips

Best Practice

调试复杂JOIN前先格式化——对齐的条件能让逻辑错误更明显。

Best Practice

使用大写关键字和小写标识符,实现团队间整洁一致的视觉效果。

Best Practice

将格式化器与如SQLFluff之类的检查工具结合使用,以发现反模式和特定方言的问题。

Best Practice

在此工具和您的CLI/CI格式化工具中使用相同的方言设置,以避免布局上的细微差异。

Additional Resources

Other Tools