这个工具是什么
SQL 格式化工具把挤成一整行的 SQL 拆开:SELECT、FROM、WHERE 这些主要子句各占一行,子句内容缩进一级,AND、OR 这类条件单独起行并与上一个条件对齐。也能反过来,把多行 SQL 压成一行。
什么时候用它
- 从日志里拷出来的 SQL 只有一行,想看清它到底查了什么。
- 排查慢查询时把 SQL 整理好,贴进 issue 或者发给同事。
- 要把 SQL 塞进配置文件或代码字符串里,先压成一行再贴。
- 检查自己写的 SQL 有没有漏条件、括号有没有配对。
有什么限制
- 只重排空白,不改语义。不会帮你补分号,也不会把
select *展开成具体字段。 - 认的是常见 SQL 语法。存储过程、自定义函数体、
BEGIN ... END这类块结构里换行可能不理想。 - 表名和字段名既不会被改也不会被大写。「识别到」那行展示的表名是粗略提取,带子查询或动态拼接时可能不准,别拿它当权限判断依据。
- 压缩只去掉多余空白和(默认丢掉的)注释,不做任何等价改写,比如不会把
!=换成<>。 - 保留注释时,行注释后面的内容跟着它所在的那一行走,不会重新归位。
常见问题
Q:字符串里的关键字会被改成大写吗?
A:不会。'select * from t' 这样的字符串字面量原样保留,格式化只作用于字符串之外的部分。
Q:为什么格式化之后 SQL 还是跑不通? A:这个工具只调整排版。SQL 本身语法有问题的话,格式化不会修好它,建议先在数据库里跑一遍看报什么错。
Q:注释会被删掉吗? A:「保留注释」默认开着,关掉之后注释会在格式化和压缩时一起丢掉。