Быстрый доступ: Telegram ВКонтакте

SQL форматтер онлайн: pretty-print запросов

Приведёт SELECT, INSERT, UPDATE, DELETE, CREATE TABLE или JOIN-запрос в читабельный вид: ключевые слова на новой строке, выравнивание столбцов, вложенные подзапросы с отступом. Работает в браузере, SQL никуда не отправляется.

0 символов
0 символов
Все нейросети без VPN за 149₽ пополнение картой МИР и СБП

Как работает SQL форматтер

Инструмент разбирает SQL на токены (идентификаторы, литералы, ключевые слова, операторы) и перестраивает в стандартный вид: топ-уровневые операторы (SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT) выравниваются по левому краю, JOIN'ы начинаются с новой строки, подзапросы в скобках - на новом уровне с отступом. Строковые литералы и комментарии (-- ..., /* ... */) сохраняются как есть.

Как пользоваться

  1. Вставьте SQL - можно в одну строку из логов, PHPMyAdmin, DataGrip или ORM.
  2. Выберите регистр ключевых слов и размер отступа.
  3. Нажмите «Форматировать». Результат справа можно скопировать в код или баг-тикет.

Пример

На входе:

select u.id,u.name,count(o.id) from users u left join orders o on o.user_id=u.id where u.active=1 group by u.id order by u.name;

На выходе:

SELECT
    u.id,
    u.name,
    count(o.id)
FROM
    users u
LEFT JOIN
    orders o
    ON o.user_id = u.id
WHERE
    u.active = 1
GROUP BY
    u.id
ORDER BY
    u.name;

FAQ

Какие диалекты поддерживаются?

Общий SQL - MySQL, PostgreSQL, SQLite, MS SQL, Oracle. Поддерживаются стандартные ключевые слова, подзапросы, CTE (WITH), window-функции (OVER). Диалект-специфичные конструкции (LIMIT ... OFFSET, FETCH FIRST, ::type) работают, но форматирование может не идеально выравнивать нестандартные вещи.

Данные уходят на сервер?

Нет, всё работает в браузере. SQL (включая возможные персональные данные в условиях) не передаётся на наши серверы.

Можно ли форматировать несколько запросов сразу?

Да, разделяйте точкой с запятой - каждый запрос форматируется отдельно.