Tool overview
Что такое Форматтер SQL?
Форматтер SQL — инструмент, который помогает форматировать, украшать и минифицировать SQL-запросы с регистром ключевых слов.
Зачем использовать Форматтер SQL?
Повышает читаемость и скорость работы, когда нужно форматировать, украшать и минифицировать SQL-запросы с регистром ключевых слов, без отправки данных на сервер.
Ключевые возможности
Конфиденциальность на стороне клиента, мгновенный результат и копирование в один клик. Форматировать, украшать и минифицировать SQL-запросы с регистром ключевых слов
Как использовать
Следуйте этим шагам, чтобы получить точные результаты с инструментом выше.
- Вставьте SQL в левую панель, загрузите .sql или перетащите на пустое состояние.
- Выберите диалект в выпадающем меню заголовка (13 вариантов: Postgres, Snowflake, BigQuery, Spark, Oracle PL/SQL и др.).
- Включите Strip comments для удаления -- и /* */ перед выводом; Beautify для SQL с отступами или Minify для одной строки.
- Скопируйте отформатированный SQL в миграции, ORM, листы хранилища, встроенные строки или документацию.
Справочник SQL Formatter
Список диалектов, элементы рабочей области, поведение Beautify и Minify, сценарии и правила удаления комментариев.
Руководство SQL Formatter — начните здесь
Эта страница — каноническое руководство по форматированию и minify SQL в Dev Tools Suite. Используйте интерактивный SQL Formatter выше во время чтения или перейдите к разделу ниже. Весь разбор и форматирование выполняются в браузере через sql-formatter — запросы, имена схем и примеры данных никогда не загружаются на сервер.
Что делает SQL Formatter
SQL Formatter украшает многострочный SQL для людей и minify для передачи. Автоматически переводит ключевые слова в верхний регистр (SELECT, FROM, WHERE), применяет отступы по предложениям и соблюдает грамматику диалекта библиотеки sql-formatter — тот же движок, что у многих IDE-расширений и CLI-форматтеров.
Что вы получаете
- Симметричная двухпанельная область: SQL-запрос слева, отформатированный или minify вывод справа
- 13 парсеров диалектов: ядро реляционных, облачные хранилища, big data, enterprise
- Режимы Beautify и Minify с живым автоформатом (debounce) и явной кнопкой Process
- Выбор диалекта и Strip comments в заголовке панели — без лишней строки
- Сворачиваемый отформатированный вывод для больших деревьев SELECT (Beautify)
- Ошибки разбора с подсказками строки и столбца, когда парсер не читает ввод
- Опциональный URL: ?mode=minify&dialect=postgresql сохраняет режим и диалект
Используйте инструмент, когда
- Вставляете ad-hoc SQL из лога, BI или ORM и нужны читаемые отступы перед ревью
- Встраиваете SQL в код приложения и нужна однострочная minify-строка
- Работаете с PostgreSQL, Snowflake, BigQuery, Spark или Oracle и нужно распознавание ключевых слов диалекта
- Нужно удалить блочные и строчные комментарии перед коммитом или отправкой
Не ожидайте
- Семантическая валидация — успех форматирования не гарантирует выполнение на сервере
- Автопланирование запросов, lint производительности или переписывание с учётом схемы
- Идеальное сохранение каждого экзотического расширения вне выбранного диалекта
- Серверный EXPLAIN или выполнение — только инструмент разметки и пробелов
Макет рабочей области и элементы заголовка
Элементы управления в заголовке панели SQL QUERY, чтобы редакторы ввода и вывода были одной высоты. Отдельной строки опций под панелью инструментов нет.
Элементы заголовка (левая панель)
| Элемент | Расположение | Назначение |
|---|---|---|
| Dialect dropdown | Заголовок, слева от вкладок режима | Выбирает парсер sql-formatter (группы: ядро, облако, big data, enterprise) |
| Strip comments | Флажок в заголовке | Если включено, удаляет --, /* */ и комментарии диалекта перед Beautify или Minify |
| Beautify / Minify | Вкладки режима в заголовке | Beautify — отступы и верхний регистр ключевых слов; Minify — сжатие пробелов |
| Process | Основная кнопка заголовка | Немедленно переформатирует (также Ctrl/Cmd+Enter). Автоформат через ~350 мс при изменении ввода или опций |
| Swap | Центральный разделитель | Переносит вывод во ввод и обрабатывает с текущим режимом |
Сочетания клавиш
- Ctrl/Cmd+Enter — Process
- Ctrl/Cmd+L — Очистить рабочую область
Поддерживаемые диалекты SQL (13 парсеров)
Всегда выбирайте диалект среды выполнения. Парсер использует разные списки ключевых слов, имён функций и правил комментариев. Standard SQL — безопасный выбор для общих ANSI-фрагментов.
Поддерживаемые диалекты
| Группа | Диалект | sql-formatter id | Типичное применение |
|---|---|---|---|
| Ядро | Standard SQL | sql | Общие ANSI-запросы |
| Ядро | PostgreSQL | postgresql | Postgres, Supabase, Cockroach (прибл.) |
| Ядро | T-SQL / SQL Server | transactsql | Microsoft SQL Server, Azure SQL |
| Ядро | MySQL / MariaDB | mysql | MySQL, MariaDB (комментарии #) |
| Ядро | SQLite | sqlite | SQLite, мобильные/локальные БД |
| Облако | Snowflake | snowflake | Листы Snowflake, dbt на Snowflake |
| Облако | Google BigQuery | bigquery | Консоль BigQuery, запланированные запросы |
| Облако | Amazon Redshift | redshift | Redshift, Postgres-совместимый warehouse SQL |
| Big data | Spark SQL | spark | Databricks, блокноты Spark SQL |
| Big data | Trino / Presto | trino | Trino, Presto, федеративные движки |
| Big data | Apache Hive | hive | HiveQL, унаследованный Hadoop |
| Enterprise | Oracle PL/SQL | plsql | Процедуры Oracle Database и скрипты SQL*Plus |
| Enterprise | IBM DB2 | db2 | Db2 LUW и корпоративные хранилища |
Cassandra CQL не поддерживается — не входит в набор диалектов sql-formatter. Для Cassandra используйте CQL-форматтер.
Beautify vs Minify — какой режим выбрать
Beautify и Minify делят выбор диалекта и Strip comments, но дают разную форму вывода.
Сравнение режимов
| Beautify | Minify | |
|---|---|---|
| Форма вывода | Многострочный, с отступами | Одна строка (пробелы сжаты) |
| Ключевые слова | Верхний регистр (SELECT, FROM, …) | Исходный регистр, кроме удаления комментариев |
| Комментарии (Strip off) | Удаляются до форматирования | Сжимаются только пробелы |
| Комментарии (Strip on) | Удаляются | Удаляются |
| Лучше для | Документация, миграции, код-ревью | Встроенные строки, логи, размер payload |
| Вид вывода | Сворачиваемое дерево для больших запросов | Простой текст |
Пример
Ввод: select id, name from users where active = 1 — Beautify даёт строки с отступами и SELECT/FROM/WHERE в верхнем регистре. Minify с выключенным Strip — одна строка: select id, name from users where active = 1.
Пошагово: форматирование SQL в браузере
- Откройте SQL Formatter в боковой панели Formatters.
- Вставьте SQL слева, загрузите .sql с панели сессии или перетащите файл на пустое состояние.
- Выберите диалект БД (напр. snowflake для листа Snowflake).
- При необходимости включите Strip comments для нежелательных -- или /* */.
- Beautify для читаемого SQL или Minify для компактной строки.
- Проверьте вывод справа. Исправьте баннер ошибки разбора — закройте после правки.
- Копируйте, скачивайте или меняйте вывод с вводом для повторного прохода.
- Делитесь ссылкой ?dialect=bigquery&mode=minify для тех же настроек.
Сценарий: файлы миграций и ORM
Файлы миграций Flyway, Liquibase и ORM проще ревьюить, когда списки SELECT, JOIN и WHERE разбиты на согласованные строки.
Рабочий процесс
- Установите диалект postgresql, transactsql, mysql или sqlite под цель миграции.
- Вставьте сырой SQL миграции из diff или вывода ORM.
- Beautify с выключенным Strip, если строчные комментарии документируют намерение.
- Скопируйте отформатированный SQL в файл миграции перед PR.
Совет
Форматирование не валидирует live-схему. Запускайте миграции на staging после косметических правок.
Сценарий: Snowflake, BigQuery и Spark SQL
Аналитики часто копируют SQL из консолей Snowflake, BigQuery или Redshift с несогласованным регистром и сжатыми строками.
Snowflake / BigQuery / Redshift
- Выберите snowflake, bigquery или redshift перед Beautify для корректного разбора функций хранилища.
- Используйте Strip comments при экспорте из блокнота с -- заметками сессии.
- Для очень широких SELECT после Beautify используйте Expand all / Collapse all.
Spark / Trino / Hive
- spark для Databricks и Spark SQL.
- trino для федеративных Presto-совместимых запросов по каталогам.
- hive для унаследованного HiveQL — покрытие по правилам Hive sql-formatter.
Сценарий: minify SQL для встроенных строк
Код приложения часто хранит SQL как шаблонную строку. Minify уменьшает байты и экранирование для одной строки в JavaScript, Python или Go.
- Вставьте читаемый SQL во входную панель.
- Включите Strip comments, если остались отладочные заметки.
- Переключитесь на Minify.
- Скопируйте однострочный вывод в строковый литерал (следите за кавычками).
Если в исходнике нужен читаемый SQL, а в runtime компактный — beautify в документации, minify только артефакта сборки.
Сценарий: очистка PR и код-ревью
Нормализуйте SQL перед ревью, чтобы diff показывал логику, а не шум пробелов.
- Beautify обе стороны сравнения, если коллега вставил однострочный SQL в тикет.
- Верхний регистр ключевых слов как единый стиль — Beautify применяет автоматически.
- После форматирования двух версий направьте вывод в Text Diff для семантического diff текста запроса.
Strip comments — поведение по диалекту
Strip comments действует в Beautify и Minify. При включении инструмент удаляет комментарии до форматирования по правилам диалекта, где реализовано.
Поведение при удалении комментариев
| Синтаксис | Обрабатывается при включённом Strip |
|---|---|
| Строчные -- | Да (замена пробелом, затем нормализация) |
| Блочные /* */ | Да |
| MySQL # | Да при диалекте mysql |
| PostgreSQL $$ | Сохраняются — содержимое $$…$$ не комментарий |
| Redshift dollar quotes | Как у диалекта PostgreSQL |
Когда Strip выключен (Minify)
Minify всё равно сжимает пробелы в одну строку, но сохраняет текст комментариев. Используйте, когда комментарии должны уйти с запросом.
Исправление: ошибки разбора и подсказки по строкам
При сбое парсера красный баннер показывает Parse error со строкой и столбцом. Редактор ввода подсвечивает строку ошибки, если доступно.
Типичные исправления
- Неверный диалект — переключитесь на реальный движок (plsql для Oracle, не Standard SQL).
- Незакрытая строка или скобка — уравняйте кавычки и скобки у указанной строки.
- Хвостовая запятая или незавершённое предложение — завершите SELECT и CTE.
- Вставлен не-SQL — уберите оболочку shell или JSON вокруг запроса.
- Синтаксис диалекта в общем режиме — попробуйте vendor-диалект или упростите неподдерживаемые расширения.
Если валидный запрос всё ещё падает, парсер sql-formatter может не покрывать вариант синтаксиса. Сообщите upstream или отформатируйте упрощённое подмножество вручную.
Конфиденциальность — запросы остаются в браузере
SQL Formatter работает на 100 % в браузере. Библиотека sql-formatter загружается динамически; форматирование в главном потоке JavaScript.
- Текст запросов не отправляется на серверы Dev Tools Suite
- Ввод, вывод, диалект и Strip comments могут храниться в localStorage на устройстве
- URL-параметры (?dialect=, ?mode=) только отражают настройки — без тела SQL
- Очищайте область (Ctrl/Cmd+L) после работы с продакшен-данными или PII
Лучшие практики форматирования SQL
- Сопоставьте диалект со средой выполнения перед Beautify — успех форматирования ≠ успех runtime
- Beautify для людей, Minify для машин
- Strip выключен, когда комментарии — бизнес-правила; включён для экспорта и встроенных строк
- Проверяйте minify на staging при dollar-quotes и экзотических литералах
- Для больших скриптов — история сессии и загрузка файла, не чат-приложения, меняющие кавычки
- С Text Diff при сравнении двух отформатированных версий одного отчётного запроса
Часто задаваемые вопросы
Развёрнутые ответы на типичные проблемы отладки и вопросы конфиденциальности данных.
Связанные инструменты
Ознакомьтесь с другими связанными утилитами, дополняющими этот инструмент.
Официальная документация и ссылки
Авторитетные спецификации и документация платформы для этой утилиты.