Как пользоваться: SQL-форматтер
- Вставьте один или несколько SQL-запросов в поле Исходный SQL или откройте файл
.sql. - Выберите диалект. Это важно для таких конструкций, как идентификаторы в обратных кавычках в MySQL, приведение
::в PostgreSQL илиTOPв SQL Server. - Выберите регистр ключевых слов и отступы. Отформатированный запрос обновляется по мере ввода.
- Скопируйте результат или скачайте его как
query.sql.
Что делает SQL-форматтер?
SQL не зависит от пробелов, поэтому запросы, сгенерированные ORM, записанные в журнал базы данных или написанные впопыхах, часто оказываются в одной огромной строке. SQL-форматтер разбирает выражение и выводит его заново: каждое основное предложение — SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY — начинается с новой строки, списки столбцов смещаются вправо, а подзапросы получают дополнительный уровень вложенности. Так гораздо проще заметить пропущенное условие соединения, неверно поставленный OR или столбец, который забыли добавить в группировку.
Пример
select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.active = 1 group by u.id
превращается в
SELECT
u.id,
count(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE
u.active = 1
GROUP BY
u.id
Почему важна настройка диалекта
Каждая база данных по-своему расширяет SQL. Правильный диалект позволяет форматтеру распознавать специфичные для производителя ключевые слова и синтаксис, а не считать их ошибками:
| Диалект | Что распознаёт |
|---|---|
| MySQL / MariaDB | Идентификаторы в `обратных кавычках`, LIMIT 10, 20, ON DUPLICATE KEY UPDATE |
| PostgreSQL | Приведения ::, параметры $1, RETURNING, тела функций в долларовых кавычках |
| SQL Server (T-SQL) | Имена в [квадратных скобках], TOP (10), переменные @variables, пакеты GO |
| BigQuery | Типы STRUCT/ARRAY, пути в обратных кавычках project.dataset.table, QUALIFY |
| Oracle PL/SQL | Переменные связывания :bind, CONNECT BY, строки q'[…]' |
Если запрос не проходит разбор, чаще всего причина в несовпадении диалекта. Попробуйте ту базу данных, которую используете на самом деле. Форматтер построен на открытой библиотеке sql-formatter и работает полностью в вашем браузере, поэтому рабочие запросы с данными клиентов не покидают ваш компьютер.
Регистр ключевых слов: верхний или нижний?
Ключевые слова в ВЕРХНЕМ РЕГИСТРЕ — традиционная конвенция, которая помогает отличать структуру запроса от имён таблиц и столбцов. Многие современные команды предпочитают нижний регистр, потому что его проще печатать и читать. Выберите один вариант и придерживайтесь его: линтеры вроде SQLFluff могут проверять это в CI. Опция Функции управляет встроенными функциями, например count() или coalesce(), отдельно.
Нужно сравнить две версии запроса? Вставьте их в сравнение текстов. Результаты выгружены в JSON? Превратите их в таблицу с помощью JSON в CSV.
Также ищут как: sql beautifier, mysql форматтер, postgresql форматтер, t-sql форматтер, sql pretty print.
Инструменты, которые хорошо сочетаются с SQL-форматтер
- JSON форматтер — Вставьте JSON, чтобы отформатировать, минифицировать или проверить его.
- CSV в JSON — Вставьте CSV или TSV и получите JSON-массив объектов.
- JavaScript форматтер — Распакуйте и отформатируйте JavaScript, JSON или JSX с нужными отступами и стилем скобок.
- HTML форматер — Вставьте минифицированную или неаккуратную разметку и получите чистый HTML с единообразными отступами, включая встроенные блоки <style> и <script>.
Часто задаваемые вопросы
Форматтер меняет то, что делает мой запрос?
Почему появляется ошибка разбора?
{{ var }}.Можно отформатировать сразу несколько запросов?
Безопасно ли вставлять рабочие запросы?
WHERE остаются конфиденциальными.Поддерживаются ли хранимые процедуры и DDL?
CREATE TABLE, ALTER, INSERT, CTE (WITH) и оконные функции поддерживаются полностью. Процедурные блоки (PL/pgSQL, управляющие конструкции T-SQL) форматируются по мере возможности.