让 SQL 语句更易读
从日志中复制、由 ORM 生成或匆忙编写的 SQL 查询语句,往往会变成冗长的一行,不仅难以阅读,更难以调试。这款 SQL 格式化工具能将您的查询语句拆分成清晰的子句 —— SELECT、FROM、JOIN、WHERE、GROUP BY、ORDER BY —— 让每个字段和条件单独占一行,并对子查询和 CASE 表达式进行统一缩进。格式化后的代码更易于代码审查、在版本控制中进行比对,以及与同事分享。
功能特点
- 支持 12 种 SQL 方言:涵盖标准 SQL 以及 MySQL、PostgreSQL、SQL Server、Oracle、BigQuery 和 Snowflake。
- 关键字大小写:可转换为大写、小写或保持原样;适用于关键字、数据类型和函数。
- 缩进设置:支持 2 个空格、4 个空格或 Tab 缩进。
- 多条语句:支持处理以分号分隔的多条语句。
- 保留注释:完整保留
--单行注释和/* */块注释。 - 复制或下载:可直接复制结果,或下载为
.sql文件。 - 隐私安全:格式化工具完全在您的浏览器本地运行,数据不上传。
格式化前后对比
格式化前的查询语句:
select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.status = 'active' group by u.id, u.name order by orders desc;
格式化后:
SELECT
u.id,
u.name,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.status = 'active'
GROUP BY
u.id,
u.name
ORDER BY
orders DESC;
SQL 风格建议
- **每行一个子句。**让每个主要子句独占一行,使查询结构一目了然。
- **使用有意义的别名。**像
u和o这样的简短别名适用于小型查询,但在长报表中,描述性强的别名会更有帮助。 - 限定列名:在 JOIN 操作中明确列的来源(使用
orders.user_id而非user_id),以避免歧义。 - 保持格式一致:在整个项目中统一格式,这样代码比对(diff)就能显示真正的修改,而不是空白字符的变化。
相关工具
需要处理查询结果?您可以使用 CSV 转 JSON 转换导出的数据,使用 JSON 格式化工具 美化 API 响应,或者使用 文本对比工具 比较两个版本的查询语句。