SQL-форматтер и beautifier
Вставьте запутанный запрос и получите чистый SQL с аккуратными отступами. 17 диалектов, выбор регистра ключевых слов и минификация в один клик — всё в браузере.
Работает в браузереБез регистрацииНичего не загружается
Как пользоваться: SQL-форматтер
- Вставьте один или несколько SQL-запросов в поле ввода или откройте файл
.sql. - Выберите диалект вашей СУБД, чтобы его синтаксис — приведения
::,[brackets], обратные кавычки или строки$$— разбирался правильно. - Задайте регистр ключевых слов (ВЕРХНИЙ, нижний или как есть), отступы и число пустых строк между запросами.
- Переключитесь на Минифицировать, чтобы убрать комментарии и пробелы для логов, ORM или параметров URL.
- Скопируйте результат или скачайте его как файл
.sql.
Зачем форматировать SQL?
Запросы, скопированные из логов ORM, планов выполнения или кода приложения, обычно приходят одной длинной строкой. Если вынести каждое предложение (SELECT, FROM, JOIN, WHERE, GROUP BY) на отдельную строку и сделать отступы для столбцов и условий, логика становится читаемой. Это также уменьшает диффы на код-ревью и помогает заметить пропущенное условие соединения или неуместный OR.
Соглашения о стиле SQL
- Ключевые слова в верхнем регистре (
SELECT,WHERE) отделяют синтаксис SQL от имён таблиц и столбцов. Так советует большинство руководств по стилю, хотя в dbt и командах аналитики популярен нижний регистр. - Один столбец на строку — тогда добавление или удаление столбца даёт дифф в одну строку.
- Единообразные отступы (2 или 4 пробела) внутри предложений и подзапросов показывают вложенность с первого взгляда.
- Завершители запросов: заканчивайте каждый запрос
;, чтобы скрипты из нескольких запросов были однозначными.
Поддерживаемые диалекты SQL
Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore и TiDB. Если запрос не разбирается, попробуйте более конкретный диалект: @variables, параметры $1 и специфичные для СУБД операторы распознаются только в своём диалекте.
Что делает минификатор
Режим минификации удаляет комментарии --, # и /* */, сжимает пробелы и переводы строк в одиночные пробелы и убирает пробелы вокруг запятых и скобок. Строковые литералы и идентификаторы в кавычках ('…', "…", `…`, […], $$…$$) копируются байт в байт, поэтому смысл запроса не меняется.
Часто задаваемые вопросы
Отправляется ли мой SQL на сервер?
Меняет ли форматирование поведение запроса?
Почему я получаю ошибку разбора на корректном SQL?
::type или SQL Server для имён в квадратных скобках ([bracketed]) и @params.