Форматирование SQL

SQL (Structured Query Language) — стандартный язык для реляционных баз данных. Этот инструмент форматирует SQL-запросы с правильными отступами, переводит ключевые слова в верхний регистр и структурирует сложные запросы для лучшей читаемости. Поддерживает распространённые диалекты SQL.

Спецификации

Типичные сценарии использования

  • Форматирование минифицированного SQL из логов или вывода ORM
  • Приведение сложных запросов в читаемый вид для ревью кода
  • Подготовка SQL для документации
  • Отладка и понимание существующих запросов

Возможности

  • Форматированный вывод SQL с единообразными отступами
  • Перевод ключевых слов SQL в верхний регистр (SELECT, FROM, WHERE и др.)
  • Форматирование сложных JOIN и подзапросов
  • Обработка CTE (общих табличных выражений) с WITH
  • Поддержка оконных функций
  • Поддержка 6 диалектов SQL (Standard, PostgreSQL, MySQL, MariaDB, SQLite, T-SQL)
  • Извлечение имён таблиц
  • Переключение на минифицированный вид
  • Отображение экономии размера (оригинал vs. минифицированный)

Примеры

Сложный запрос с JOIN

Попробовать →

Запрос с агрегацией, соединением и сортировкой.

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = true
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESC

Советы

  • Форматируйте запросы перед коммитом в систему контроля версий.
  • Ключевые слова в верхнем регистре улучшают читаемость, но не являются обязательными в SQL.
  • Подзапросы следует выделять отступами для наглядности.

Описание Форматирование SQL

SQL (Structured Query Language) является стандартным языком для реляционных баз данных с 1970-х годов. Он предоставляет декларативный синтаксис для запросов, манипуляции и управления данными в системах баз данных, включая PostgreSQL, MySQL, SQLite, SQL Server и Oracle. Хотя каждая база данных добавляет проприетарные расширения, ядро языка остаётся удивительно единообразным.

SQL-операторы делятся на несколько категорий. Язык манипулирования данными (DML) включает SELECT, INSERT, UPDATE и DELETE для чтения и изменения данных. Язык определения данных (DDL) включает CREATE, ALTER и DROP для управления объектами базы данных. Язык управления данными (DCL) управляет правами с помощью GRANT и REVOKE. Современный SQL также поддерживает общие табличные выражения (CTE) с конструкцией WITH, оконные функции для аналитики и операции с JSON для полуструктурированных данных.

Форматирование SQL необходимо для читаемости и сопровождения. Сложный запрос с соединениями, подзапросами и агрегациями может стать непонятным при сжатии в одну строку — что часто встречается в запросах, генерируемых ORM, логах приложений и инструментах мониторинга баз данных. Единообразное форматирование с ключевыми словами в верхнем регистре, правильными отступами и выровненными конструкциями делает запросы проще для ревью, отладки и оптимизации.

Форматирование SQL также помогает в анализе производительности. Хорошо отформатированные запросы упрощают выявление отсутствующих индексов (по столбцам в условиях WHERE и JOIN), обнаружение ненужных подзапросов, которые можно переписать как соединения, и понимание логического потока сложных запросов с CTE и оконными функциями.

SQL нечувствителен к регистру ключевых слов, поэтому SELECT и select воспринимаются движком базы данных одинаково. Ключевые слова в верхнем регистре (SELECT, FROM, WHERE, JOIN) — это широко распространённая конвенция, улучшающая читаемость за счёт визуального отделения ключевых слов SQL от имён таблиц и столбцов. Большинство форматировщиков и руководств по стилю рекомендуют ключевые слова в верхнем регистре именно по этой причине.

Общее табличное выражение (CTE) — это именованный временный набор результатов, определённый с помощью ключевого слова WITH, который существует в течение выполнения одного запроса. CTE улучшают читаемость, разбивая сложные запросы на именованные шаги и заменяя глубоко вложенные подзапросы последовательной структурой сверху вниз. Рекурсивные CTE расширяют эту возможность для обхода иерархических данных, таких как организационные диаграммы или вложенные комментарии.

Базовый синтаксис SQL (SELECT, JOIN, WHERE, GROUP BY) единообразен для разных диалектов баз данных, но различия проявляются в проприетарных функциях. MySQL использует обратные кавычки для идентификаторов, PostgreSQL — двойные кавычки, SQL Server — квадратные скобки. Функции, типы данных и расширенные возможности, такие как LATERAL-соединения, MERGE и UPSERT, также различаются в зависимости от диалекта. Этот форматировщик обрабатывает стандартный синтаксис SQL, работающий во всех основных базах данных.

← Вернуться ко всем инструментам