Перейти к контенту
SPCXTools

SQL-форматтер

Превратите длинные, запутанные SQL-запросы в чистый, читаемый код с правильными отступами.

Работает локально — файлы не покидают ваше устройство

Загрузка инструмента…

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

  1. 1Вставьте ваш SQL-запрос в поле Ввод или нажмите Пример, чтобы загрузить тестовый код.
  2. 2Выберите Диалект SQL, чтобы инструмент правильно распознал синтаксис вашей базы данных.
  3. 3Выберите регистр ключевых слов — ВЕРХНИЙ, нижний или без изменений — и настройте отступы.
  4. 4Скопируйте отформатированный запрос или скачайте его в виде файла .sql.

Сделайте SQL-код читаемым

Запросы, скопированные из логов, сгенерированные ORM или написанные на скорую руку, часто выглядят как одна длинная строка, которую сложно читать и еще сложнее отлаживать. Этот SQL-форматер разбивает ваш запрос на понятные блоки — SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY, — переносит каждый столбец и условие на новую строку и выравнивает отступы в подзапросах и выражениях CASE. Такой код проще проверять, сравнивать в системах контроля версий и обсуждать с коллегами.

Возможности

  • 12 диалектов SQL, от стандартного SQL до MySQL, PostgreSQL, SQL Server, Oracle, BigQuery и Snowflake.
  • Регистр ключевых слов: ВЕРХНИЙ, нижний или без изменений; применяется к ключевым словам, типам данных и функциям.
  • Отступы: 2 пробела, 4 пробела или табуляция.
  • Несколько запросов, разделенных точкой с запятой.
  • Сохранение комментариев — как однострочных --, так и многострочных /* */.
  • Копирование или скачивание результата в виде файла .sql.
  • Конфиденциально: форматер работает локально прямо в вашем браузере.

До и после

Такой запрос:

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

превращается в:

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.status = 'active'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC;

Советы по стилю SQL

  • Одно выражение на строку. Если начинать каждое основное выражение с новой строки, структура запроса будет видна с первого взгляда.
  • Используйте понятные псевдонимы. Короткие псевдонимы, такие как u и o, подходят для небольших запросов, но в длинных отчетах лучше использовать описательные.
  • Указывайте полные имена столбцов в JOIN (orders.user_id вместо user_id), чтобы избежать неоднозначности.
  • Соблюдайте единообразие форматирования во всем проекте, чтобы в истории изменений (diff) отображались реальные изменения, а не пробелы.

Связанные инструменты

Работаете с результатами запросов? Преобразуйте экспортированные данные с помощью конвертера CSV в JSON, отформатируйте ответы API с помощью форматтера JSON или сравните две версии запроса через инструмент сравнения текста.

Частые вопросы

Какие диалекты SQL поддерживаются?
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL и IBM Db2. Выбор правильного диалекта важен для специфичного синтаксиса баз данных: идентификаторов в обратных кавычках или квадратных скобках, строк в долларовых кавычках и специальных операторов.
Изменит ли форматирование работу моего запроса?
Нет. Форматтер меняет только пробелы, переносы строк и, по вашему выбору, регистр ключевых слов, типов данных и названий функций. Названия таблиц и столбцов, строки и комментарии остаются без изменений.
Почему возникает ошибка?
Форматтеру необходимо понимать структуру вашего запроса. Ошибки обычно означают опечатку, незакрытую кавычку или скобку, либо синтаксис другой базы данных — попробуйте выбрать другой диалект. Переменные шаблонизатора, такие как {{ name }}, также могут запутать парсер.
Можно ли отформатировать несколько запросов сразу?
Да. Разделите запросы точкой с запятой, и каждый из них будет отформатирован с добавлением пустой строки между ними.
Отправляется ли мой SQL на сервер?
Нет. Форматирование происходит локально в вашем браузере, поэтому вы можете безопасно форматировать запросы с внутренними названиями таблиц или тестовыми данными.
Должны ли ключевые слова SQL быть в верхнем регистре?
Ключевые слова в SQL нечувствительны к регистру, поэтому это исключительно вопрос стиля. Написание заглавными буквами (SELECT, FROM, WHERE) — это традиционный подход, позволяющий визуально отделить их от названий таблиц и столбцов. Однако многие современные команды предпочитают строчные буквы. Выберите один стиль и придерживайтесь его.