SQL-форматтер и бьютификатор

Вставьте запрос или целую миграцию и получите читаемый SQL: по одному предложению в строке, выровненные JOIN и единый регистр ключевых слов с учётом синтаксиса вашей базы данных.

Обновлено
 
Форматированный SQL
 

Ваши данные никогда не покидают ваш компьютер. Вся обработка выполняется на 100% локально в вашем браузере.

Был ли этот инструмент полезен?0.0 Оценок: 0
Выполняйте SQL онлайн на настоящей SQLite прямо в браузереГотовые таблицы, импорт CSV, несколько запросов сразу, экспорт результатов и сохранение базы данных.SQL Playground →

Как пользоваться: SQL-форматтер

  1. Вставьте один или несколько SQL-запросов в поле Исходный SQL или откройте файл .sql.
  2. Выберите диалект. Это важно для таких конструкций, как идентификаторы в обратных кавычках в MySQL, приведение :: в PostgreSQL или TOP в SQL Server.
  3. Выберите регистр ключевых слов и отступы. Отформатированный запрос обновляется по мере ввода.
  4. Скопируйте результат или скачайте его как 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 }}.
Можно отформатировать сразу несколько запросов?
Да. Разделяйте запросы точками с запятой. Каждый запрос форматируется отдельно и отделяется одной или двумя пустыми строками в зависимости от настройки «Между запросами».
Безопасно ли вставлять рабочие запросы?
Да. Форматирование выполняется в вашем браузере с помощью JavaScript, и ничего не отправляется на наш сервер, поэтому значения в условиях WHERE остаются конфиденциальными.
Поддерживаются ли хранимые процедуры и DDL?
Конструкции CREATE TABLE, ALTER, INSERT, CTE (WITH) и оконные функции поддерживаются полностью. Процедурные блоки (PL/pgSQL, управляющие конструкции T-SQL) форматируются по мере возможности.
Можно ли установить SQL-форматтер как веб-приложение и пользоваться им офлайн?
Да. SQL-форматтер — это веб-приложение (PWA), которое можно установить из браузера, без скачивания из магазина приложений. В Chrome или Edge (Windows, macOS, Linux, ChromeOS) или на Android нажмите вверху этой страницы «Установить приложение»; на iPhone и iPad используйте «Поделиться → На экран «Домой»», а в Safari 17+ на Mac — «Файл → Добавить в Dock». После этого приложение откроется в отдельном окне со своим значком, и так как оно полностью работает в браузере, оно продолжит работать офлайн. Firefox на компьютере не умеет устанавливать веб-приложения. Как работает установка.

Похожие инструменты

localJSON форматтерВставьте JSON, чтобы отформатировать, минифицировать или проверить его. Ошибки указываются с точной…localСравнение текстовВставьте исходную и изменённую версии, чтобы увидеть добавленные, удалённые и изменённые строки рядом — с…localJSON в CSVПревратите JSON-массив в CSV-таблицу, которую удобно открыть в электронной таблице. Вложенные объекты…localCSV в JSONВставьте CSV или TSV и получите JSON-массив объектов. Поля в кавычках, переносы строк внутри ячеек и…localJavaScript форматтерРаспакуйте и отформатируйте JavaScript, JSON или JSX с нужными отступами и стилем скобок. Или удалите…localHTML форматерВставьте минифицированную или неаккуратную разметку и получите чистый HTML с единообразными отступами,…