SQL在线格式化与美化
粘贴一段杂乱的SQL,输入的同时就能得到整齐易读的结果。每个子句单独一行,列和条件对齐,子查询和CASE表达式自动缩进,CREATE TABLE每个字段一行。选择方言(MySQL、PostgreSQL、SQL Server、Oracle、SQLite或BigQuery),反引号、[方括号]、$$字符串和::类型转换都能正确处理;关键字大小写、缩进宽度、逗号放在行首还是行尾也都可以设置。工具还会提示未闭合的引号、括号不匹配以及没有WHERE的DELETE或UPDATE,可以把SQL压缩成一行,或复制为Python、JavaScript、Java、C#、PHP字符串。SQL不会离开你的浏览器。
免费 · 无需注册
使用方法
- 粘贴SQL,或打开.sql文件。
- 选择数据库方言、关键字大小写和缩进方式。
- 查看格式化结果,修正下方提示的问题。
- 复制、下载为.sql,或复制为代码字符串。
为什么使用这个工具
清晰易读
子句分行,列和条件对齐,子查询、WITH和CASE自动缩进。
七种方言
MySQL反引号和#注释,PostgreSQL的$$和::,T-SQL的[ ]和GO,Oracle、SQLite、BigQuery。
按团队规范
关键字大写或小写,2或4个空格或制表符,逗号前置或后置。
错误检查
发现未闭合的字符串和注释、括号不匹配,以及没有WHERE的DELETE或UPDATE。
压缩
把SQL压缩成一行,可选择保留注释和优化器提示。
复制为代码
一键生成Python、JavaScript、Java、C#、PHP字符串,直接粘贴到代码中。
为什么要格式化SQL
从日志、MyBatis等ORM或BI工具里拿到的SQL,常常是长长的一行。格式化之后每个子句单独一行,查询了什么、关联了哪些表、怎样过滤一目了然。代码评审更轻松,Git差异更小,也更容易发现漏写关联条件这类问题。
如何选择方言
- MySQL / MariaDB:反引号标识符、#注释、字符串中的反斜杠转义,国内项目最常用。
- PostgreSQL:$$函数体、::类型转换和$1参数;人大金仓等兼容PostgreSQL的数据库也可选它。
- SQL Server:[方括号]标识符、@变量、TOP和GO分批。
- Oracle:压缩时保留 /*+ 提示 */;达梦等兼容Oracle的数据库可选它。
- BigQuery和SQLite:反引号标识符,其余按标准SQL处理。
常见的SQL编写规范
多数团队约定关键字大写、表名和字段名小写,用2或4个空格缩进,SELECT中每个字段一行。逗号前置方便注释掉某一列,差异也更清晰;逗号后置读起来更自然。不管选择哪种,关键是全团队统一,最好在CI中用SQLFluff等工具自动检查。
执行SQL前的检查
- 没有WHERE的UPDATE或DELETE会修改整张表,先用同样的WHERE执行一次SELECT确认行数。
- 高风险操作放在事务里,必要时可以ROLLBACK。
- 业务代码中避免使用SELECT *。
- 不要把用户输入直接拼接进SQL,应使用参数(?、$1、@id)防止SQL注入。
常见问题
SQL格式化工具免费吗?
免费。无需注册,除浏览器本身外没有大小限制。
SQL会上传到服务器吗?
不会。格式化在浏览器中完成,表名和查询中的数据都不会外泄。
格式化会改变SQL的执行结果吗?
不会。只改变空格、换行和关键字大小写,字符串、名称和注释都保持不变。
支持哪些数据库?
标准SQL,以及MySQL/MariaDB、PostgreSQL、SQL Server、Oracle、SQLite和BigQuery。
能格式化存储过程吗?
可以,按语句逐条格式化。特别复杂的PL/SQL或T-SQL控制结构可能需要手动微调。
能检查SQL语法吗?
能发现未闭合引号、括号不匹配等常见语法问题,但不会核对表名和字段名是否真实存在。
相关工具
想开发什么吗?
告诉我们你想构建什么。
告诉我们您需要构建什么:从简单的网站到完整应用、AI 解决方案、自动化或定制系统都可以。