SQL форматтер
с подсветкой синтаксиса
Зачем форматировать SQL
SQL-запросы, записанные в одну строку или без единообразных отступов, сложно читать, отлаживать и поддерживать. Форматирование превращает хаотичный текст в структурированный документ, где логика запроса видна с первого взгляда.
Читаемость кода
Отформатированный SQL с выделенными ключевыми словами на отдельных строках позволяет мгновенно понять структуру запроса: откуда берутся данные, какие условия фильтрации, как группируются результаты. Это критически важно при работе с запросами на 50-100 и более строк.
Упрощение отладки
Когда каждое условие WHERE находится на своей строке, а JOIN-ы визуально отделены от основного тела запроса, поиск ошибок занимает минуты вместо часов. Неправильные условия соединения, отсутствующие фильтры и ошибки в логике становятся очевидными.
Командная работа
Единообразное форматирование SQL в команде упрощает код-ревью, уменьшает конфликты при слиянии веток и создает общий визуальный стандарт. Новые участники быстрее вникают в логику запросов, а опытные тратят меньше времени на проверку чужого кода.
Кому полезен SQL форматтер
Инструмент пригодится всем, кто работает с реляционными базами данных: от начинающих до senior-разработчиков и DBA.
Код-ревью
Перед тем как отправить запрос на проверку, отформатируйте его. Ревьюер сразу увидит структуру: таблицы, соединения, условия фильтрации. Это ускоряет процесс проверки и уменьшает количество замечаний по стилю.
Отладка запросов
Скопировали запрос из логов или мониторинга? Вставьте его в форматтер, чтобы увидеть структуру. Гораздо проще найти лишний JOIN или отсутствующий индексируемый столбец в форматированном виде.
Документация
Отформатированные запросы с комментариями становятся частью технической документации. Они помогают передавать знания между командами и фиксировать бизнес-логику в читаемом виде.
Обучение SQL
Начинающие разработчики и аналитики учатся писать запросы, глядя на хорошо структурированные примеры. Форматтер помогает увидеть правильную вложенность подзапросов и синтаксис JOIN-операций.
Стандарт команды
Используйте форматтер как единый стандарт оформления SQL в проекте. Настройте отступы, регистр ключевых слов и стиль — и все запросы в репозитории будут выглядеть одинаково.
Минификация
Для хранимых процедур, ORM-генерируемых запросов и API-параметров бывает нужен однострочный SQL. Режим минификации убирает все переносы, лишние пробелы и комментарии.
Основные конструкции SQL/ справочник
Каждая конструкция при форматировании выносится на отдельную строку для максимальной читаемости. Подзапросы и CTE получают дополнительный уровень отступа.
SELECT ... FROM ... WHERE
Базовый запрос выборки данных. Каждый столбец SELECT и каждое условие WHERE форматируются на отдельной строке с отступом для быстрого сканирования.
SELECT
u.id,
u.name,
u.email
FROM users u
WHERE
u.status = 'active'
AND u.created_at >= '2024-01-01'JOIN (соединения таблиц)
INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN выносятся на отдельные строки. Условие ON располагается с отступом под своим JOIN-ом, что позволяет сразу видеть связи между таблицами.
SELECT o.id, u.name, p.title
FROM orders o
INNER JOIN users u
ON o.user_id = u.id
LEFT JOIN products p
ON o.product_id = p.idCTE (Common Table Expressions)
WITH-выражения (CTE) делают сложные запросы модульными. Каждый CTE-блок получает отдельную секцию с именем, а основной запрос следует после закрывающей скобки.
WITH active_users AS (
SELECT id, name
FROM users
WHERE status = 'active'
),
user_orders AS (
SELECT user_id, COUNT(*) AS cnt
FROM orders
GROUP BY user_id
)
SELECT au.name, uo.cnt
FROM active_users au
JOIN user_orders uo
ON au.id = uo.user_idОконные функции (Window Functions)
ROW_NUMBER(), RANK(), DENSE_RANK(), LAG(), LEAD() — мощные аналитические функции. Конструкция OVER(PARTITION BY ... ORDER BY ...) форматируется компактно или с переносом в зависимости от длины.
SELECT
department,
employee,
salary,
ROW_NUMBER() OVER (
PARTITION BY department
ORDER BY salary DESC
) AS rank
FROM employeesMySQL: поддерживает LIMIT без OFFSET, обратные кавычки для идентификаторов (`table`), AUTO_INCREMENT и специфичные функции вроде GROUP_CONCAT и IFNULL.
PostgreSQL: поддерживает RETURNING, ILIKE, массивы, JSON/JSONB операторы, генераторы серий и богатый набор типов данных вроде UUID, INTERVAL и ARRAY.
Конвенции форматирования
Единый стиль оформления SQL помогает командам быстрее читать и поддерживать запросы. Ниже приведены самые распространённые правила.
Ключевые слова — UPPERCASE
Традиционно ключевые слова SQL пишутся заглавными буквами: SELECT, FROM, WHERE, JOIN, GROUP BY. Это визуально отделяет структуру запроса (ключевые слова) от данных (имена таблиц и столбцов). Большинство команд и стайлгайдов (Google, GitLab, Uber) рекомендуют именно этот подход.
Отступы — 4 пробела
Четыре пробела — наиболее популярный размер отступа для SQL. Он обеспечивает достаточную визуальную глубину для вложенных подзапросов и CTE, при этом не смещает код слишком далеко вправо. Для компактных запросов подойдут 2 пробела, для глубокой вложенности — табуляция.
Столбцы — по одному на строку
Каждый столбец в SELECT записывается на отдельной строке с запятой в конце (trailing comma) или в начале (leading comma). Это упрощает добавление и удаление столбцов через diff, а также позволяет комментировать отдельные поля без нарушения синтаксиса.
JOIN — на уровне FROM
Операторы JOIN располагаются на том же уровне отступа, что и FROM. Условие ON сдвигается на один уровень вглубь. Это создает визуальную иерархию: слева — источники данных, справа — связи между ними. При большом числе JOIN-ов структура остается прозрачной.
Советы по написанию SQL
Практические рекомендации, которые помогут писать более чистые и производительные SQL-запросы.
1Используйте алиасы таблиц
Вместо полных имен таблиц используйте короткие алиасы: users AS u, orders AS o. Это сокращает запрос и упрощает чтение. Алиасы должны быть осмысленными: первая буква или аббревиатура названия таблицы.
2Избегайте SELECT *
Всегда перечисляйте конкретные столбцы вместо SELECT *. Это улучшает производительность (меньше данных передается), делает запрос самодокументируемым и предотвращает ошибки при изменении схемы таблицы.
3Комментируйте сложную логику
Добавляйте однострочные комментарии (--) перед сложными условиями и блочные комментарии (/* */) для описания цели запроса. Форматтер сохраняет комментарии и выделяет их серым цветом для отличия от кода.
4Используйте CTE вместо подзапросов
Common Table Expressions (WITH ... AS) делают запрос читаемым и модульным. Каждый CTE-блок решает одну задачу и имеет понятное имя. Их проще тестировать по отдельности и переиспользовать в основном запросе.
5Проверяйте план выполнения
После форматирования используйте EXPLAIN (PostgreSQL, MySQL) или SET SHOWPLAN_TEXT ON (MS SQL) для анализа плана выполнения. Форматированный запрос проще соотнести с узлами плана и найти узкие места производительности.
6Заканчивайте запрос точкой с запятой
Точка с запятой (;) явно обозначает конец оператора. Это особенно важно при работе с несколькими запросами в одном скрипте, хранимых процедурах и миграциях. Форматтер автоматически разделяет запросы по точке с запятой.
Как пользоваться форматтером
Три простых шага для превращения неформатированного SQL в аккуратный код.
Вставьте SQL
Скопируйте SQL-запрос из IDE, лога, мониторинга или документации и вставьте в текстовое поле. Или нажмите кнопку «Пример SQL» для демонстрации.
Настройте параметры
Выберите диалект (MySQL, PostgreSQL, MS SQL), размер отступа (2/4 пробела или табуляция) и регистр ключевых слов (UPPERCASE или lowercase).
Скопируйте результат
Отформатированный SQL с подсветкой синтаксиса появится мгновенно. Нажмите «Копировать» для вставки в свой проект. Изучите статистику запроса внизу.
Часто задаваемые вопросы

Лиана Арифметова
Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».
Был ли этот калькулятор полезен?
Отказ от ответственности
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.
Похожие инструменты
Калькулятор мыловарения (SAP)
Расчёт щёлочи по SAP-числам масел для мыла с нуля. NaOH, KOH, пережир, вода.
Калькулятор садовых дорожек
Расчёт садовых дорожек: длина, ширина, материал покрытия, подушка, бордюры, стоимость. Плитка, камень, бетон, гравий.
Калькулятор платы за отопление
Расчёт платы за отопление по нормативу или показаниям ОДПУ. Тариф Гкал, площадь, ОДН.
Калькулятор ROC и AUC (точность, чувствительность)
Построение ROC-кривой, расчет AUC и метрик классификации (Accuracy, F1, Recall, Precision).
Калькулятор НОД и НОК
Быстрый расчет НОД и НОК для любых чисел. Разложение на простые множители (факторизация) онлайн.
Калькулятор булевой алгебры
AND, OR, NOT, XOR, таблицы истинности, законы упрощения логических выражений. Для программистов и студентов.
Калькулятор патента ИП (патентная система налогообложения)
Рассчитайте стоимость патента для ИП: 6% от потенциального дохода по регионам и видам деятельности. График оплаты, вычет страховых взносов.
Калькулятор теории вероятностей (nPr, nCr, распределения)
Посчитать сочетания, перестановки, биномиальное и пуассоновское распределение онлайн. Калькулятор формул Бернулли и Байеса.
Калькулятор UX-метрик: SUS, NPS, HEART, A/B-тест, эвристики Нильсена
Комплексный калькулятор UX-метрик: System Usability Scale (SUS), Net Promoter Score (NPS), HEART framework Google, статистическая значимость A/B-тестов, эвристическая оценка Нильсена (10 эвристик), метрики выполнения задач (Task Success Rate, Efficiency).
Генератор палиндромных дат
Поиск дат-палиндромов в разных форматах (ДД.ММ.ГГГГ, ISO, US). Ближайшая палиндромная дата, список за период.
Счётчик символов и слов онлайн
Символы с пробелами и без, слова, предложения, время чтения. Для SEO, соцсетей и копирайтинга.
Калькулятор технического обслуживания (ТОиР)
Расчёты ТОиР: MTBF/MTTR, планирование ТО, стоимость простоя, запчасти, предиктивное ТО
Налоговый калькулятор (НДС, НДФЛ, зарплата)
Универсальный калькулятор налогов: выделите или начислите НДС, рассчитайте «чистую» зарплату и взносы, оцените налоги ИП (УСН, Патент).
Калькулятор для малыша: подгузники, питание, бюджет первого года
Калькулятор расходов на ребёнка. Бюджет на подгузники, питание, коляску, одежду. Стоимость первого года жизни малыша в России.
Калькулятор водоснабжения дома
Расчёт системы водоснабжения частного дома: пиковый расход воды, диаметр труб ПНД, давление, мощность насоса, объём гидроаккумулятора.