123问免费工具与知识服务
123问工具大全› 工具大全› 开发工具› SQL格式化

🗄 SQL格式化

SQL美化 · 关键字高亮 · 格式压缩

格式化结果将在这里显示...

SQL格式化常见问题

支持的SQL方言有哪些?

本工具兼容MySQL、PostgreSQL、SQLite等主流SQL语法,支持SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER等所有常用SQL语句。

格式化会改变SQL语法吗?

不会。格式化只调整缩进、换行和空白,不影响SQL语句的语义和执行结果。关键字会自动转为大写以增强可读性。

SQL格式化和压缩有什么用?

格式化让复杂SQL更易读、便于排查和审查;压缩能去掉注释和多余空白,减小日志文件体积,常用于把SQL写进配置文件或一行命令。

为什么我的SQL格式化后变了?

格式化会把关键字统一转为大写、规范缩进和对齐。这只是展示层面的调整,表名、列名、字符串值、注释内容都不会被改变。

SELECT和INSERT里的大写关键字对执行有影响吗?

没有。SQL关键字不区分大小写,SELECT 和 select 执行结果完全一样。格式化转大写只是为了让代码看起来更规范统一。

SQL注释会不会被格式化破坏?

不会。-- 行注释和 /* */ 块注释都会被保留。只有在「压缩」模式下,注释才会被移除,这也是压缩减小体积的主要手段之一。

格式化一条上千行的SQL会不会卡?

纯前端处理,速度取决于浏览器性能。一般几千行的SQL格式化都在毫秒级完成,不会明显卡顿。

可以格式化存储过程和触发器吗?

可以。BEGIN/END、DECLARE、CURSOR、IF、LOOP 等过程化语句的关键字本工具都支持识别,能对存储过程、触发器、函数做基本的缩进美化。

SQL格式化 - 示例演示

示例一:多表联查格式化

输入:SELECT a.id,a.name,b.amount FROM users a JOIN orders b ON a.id=b.user_id WHERE a.status=1 ORDER BY b.amount DESC
结果:格式化后SELECT/FROM/JOIN/WHERE/ORDER BY每个关键字独占一行,ON条件缩进,列名对齐,一目了然
联查语句是开发中最常见也最需要美化的场景,格式化后能快速看清表结构和关联条件。

示例二:INSERT语句格式化

输入:INSERT INTO users(name,email,age) VALUES('张三','zhang@test.com',28)
结果:INSERT/INTO/VALUES各占一行,列名和值清晰对应,便于核对字段
在写批量插入或迁移脚本时,格式化能帮你避免列名和值对不齐的错位bug。

示例三:压缩为单行

输入:一段带注释和多行空白的复杂SQL
结果:压缩后移除全部注释和多余空白,压缩成一行紧凑代码,并显示压缩比例
需要把SQL嵌入配置文件、shell脚本或日志打印时,压缩版更省空间也更易复制。

SQL格式化深度解读

SQL语句的类型和主要关键字

SQL语句可以按功能分为查询、数据操作、数据定义、数据控制等几大类。每一类都有对应的核心关键字,格式化时这些关键字会被突出高亮。

SQL语句分类与关键字
类别作用核心关键字
DQL 查询检索数据SELECT FROM WHERE GROUP BY HAVING ORDER BY LIMIT
DML 操作增删改数据INSERT UPDATE DELETE
DDL 定义建表改表CREATE ALTER DROP TABLE INDEX
DCL 控制权限管理GRANT REVOKE
TCL 事务事务控制BEGIN COMMIT ROLLBACK

格式化规范怎么定

  • 关键字统一大写:SELECT、FROM、WHERE 等一眼就能识别。
  • 每个主要子句独占一行,逻辑层次清晰。
  • JOIN、ON、AND、OR 等缩进对齐,方便查看关联条件。
  • 括号内的参数按缩进排列,函数嵌套层次分明。
  • 字符串、数字、注释分别用不同颜色高亮。

团队协作时建议统一格式化规范,避免每个人格式不同导致diff混乱。

为什么要给SQL做性能优化前先看懂

在分析慢查询、加索引、改写执行计划之前,第一步永远是「看懂这条SQL在干什么」。一坨挤在一起的SQL很难分析,格式化后能快速定位扫描了哪些表、关联和过滤条件是什么。

  • 先看FROM/JOIN:确认涉及哪些表和关联关系。
  • 再看WHERE:过滤条件是否命中索引。
  • 然后看GROUP BY/ORDER BY:是否会造成文件排序。
  • 最后看LIMIT:是否做了全量扫描后才截断。

压缩SQL的注意点

压缩会移除注释,如果注释里有重要的说明信息,建议先备份原SQL。另外字符串内的空白和换行不会被压缩,因为那属于数据内容,不能动。

  • 压缩只处理语法空白,字符串 / 引号内的内容原样保留。
  • 行注释 -- 和块注释 /* */ 都会被删除。
  • 压缩后建议先在测试环境验证,确认逻辑等价再用于生产。

SQL格式化参考数据

常用SQL聚合函数速查

函数作用说明
COUNT(*)统计行数统计结果集总行数
SUM(列)求和对数值列求和
AVG(列)平均值对数值列求平均
MAX(列)最大值取该列最大值
MIN(列)最小值取该列最小值
GROUP_CONCAT(列)行转列拼接把多行拼成字符串
DISTINCT去重配合COUNT统计去重数量

MySQL/PostgreSQL常用函数对照

功能MySQLPostgreSQL
当前时间NOW()NOW()
字符串拼接CONCAT(a,b)a || b 或 CONCAT(a,b)
取子串SUBSTR(s,1,3)SUBSTRING(s,1,3)
空值替换IFNULL(x,0)COALESCE(x,0)
截断小数TRUNCATE(x,2)ROUND(x,2)
行号窗口ROW_NUMBER() OVER(...)ROW_NUMBER() OVER(...)
类型转换CAST(x AS INT)CAST(x AS INTEGER)

使用说明

使用方法

1. 粘贴SQL语句。

2. 点击"格式化"按钮美化排版。

3. 点击"压缩"按钮压缩为单行。

分享工具: Facebook Twitter 微博 复制链接