Форматирование SQL
Запрос или целый скрипт с красивым оформлением за один клик · 18 диалектов баз данных · регистр ключевых слов и отступ настраиваются
格式化选项
输入 SQL
格式化结果
这个工具做什么、不做什么
只调整排版,不改语义。格式化只改空白、换行与关键字大小写:字符串字面量与注释里的内容一个字符都不动,不重命名标识符、不增删括号、不合并或拆分语句。因此格式化后的 SQL 与原 SQL 的语义一致(可用「去掉多余空白」再对比验证)。
不会修复语法错误。SQL 本身写错时(少了右括号、引号没闭合、关键字拼错),格式化会直接失败并给出「第几行第几列附近」的位置,而不是猜你的意思去补全。报错信息来自 sql-formatter 的解析器,本页把它整理成中文位置提示。
「去掉多余空白」不是压缩器。它把字符串与注释之外的连续空白压成一个空格(可选移除注释),不缩短标识符、不去括号、不做任何语法级压缩。字符串里的空格、注释里的换行都原样保留;勾选「移除注释」才会删除注释。
方言影响关键字识别与引号/注释规则。本页基于 sql-formatter 15.4.11,可选 18 种方言(另有 transactsql 的别名 tsql 未单列)。选错一般不会报错,但排版可能与预期不同(例如把 PostgreSQL 的 :: 类型转换当成普通符号);拿不准就用「标准 SQL」。
Частые вопросы
Переписывания на уровне синтаксиса нет. Форматирование правит только пробелы, переводы и регистр ключевых слов - identifiers не переименовываются, скобки не добавляются и не снимаются, содержимое литералов не трогается, и ни один пробел внутри строк и комментариев не сдвигается. Оборотная сторона: и синтаксические ошибки чинить не станет - если SQL написан неверно (пропущена закрывающая скобка, не закрыта кавычка), страница честно падает с строкой и столбцом, вместо того чтобы угадывать ваш замысел и достраивать за вас.
Замерено на sql-formatter 15.4.11: 18 рабочих диалектов плюс алиас tsql для transactsql - стандартный SQL, MySQL, MariaDB, TiDB, SingleStore, PostgreSQL, Amazon Redshift, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Spark SQL, Hive, Trino / Presto, IBM Db2, Db2 for i, Couchbase N1QL. Диалект решает, что считается ключевым словом, как цитировать и комментировать; промах обычно не ошибка, но вёрстка выйдет не как ждали (двоеточие приведения типа PostgreSQL прочитается как обычные операторы, скажем). Сомневаетесь - берите стандартный SQL.
Нет. Делает ровно одно: сжимает серии пробелов, переводов и табуляции вне строковых литералов и комментариев в один пробел, удаление комментариев - по желанию. Идентификаторы не укорачивает, скобки не снимает, синтаксического сжатия не делает - экономия размера скромная; считайте это типографским движением «быстро уложить кусок SQL в одну строку», а не минификатором или обфускатором. Двойные пробелы внутри строк выживают; комментарии по умолчанию остаются (даже переводы внутри блочных) и исчезают только по галочке удаления.
Ничего не уходит. Лексический разбор, форматирование и сжатие пробелов идут в браузере - sql-formatter самохостный скрипт, без CDN - так что SQL и имена таблиц не покидают машину, перезагрузка стирает, отправляющих запросов на странице нет вовсе. Потолок 200 000 знаков за подход; свыше 1000 строк страница предупредит, что может затянуться - по замерам скрипты в десять тысяч строк обычно укладываются в одну-две секунды.