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 с подсветкой синтаксиса появится мгновенно. Нажмите «Копировать» для вставки в свой проект. Изучите статистику запроса внизу.
Часто задаваемые вопросы

Лиана Арифметова
Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».
Отказ от ответственности
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.
Похожие инструменты
Калькулятор трёхфазной мощности
Активная, реактивная и полная мощность. Звезда/треугольник, линейное/фазное напряжение, сечение кабеля.
Генератор Open Graph тегов
Создание OG-тегов для корректного отображения ссылок в VK, Telegram, Facebook и Twitter. Предпросмотр карточки и готовый HTML-код.
JSON форматтер и валидатор
Онлайн форматирование, валидация и минификация JSON с русским интерфейсом. Подсветка синтаксиса, древовидный просмотр, статистика и проверка ошибок.
Калькулятор тепловой пушки
Подбор мощности тепловой пушки для гаража, склада или строительного объекта.
Калькулятор калорий при плавании
Расход калорий при плавании: кроль, брасс, баттерфляй, на спине. MET-метод, учёт стиля, интенсивности, бассейна.
Калькулятор доходности аренды
Чистая и валовая доходность аренды, окупаемость, ROI, Cap Rate, Cash-on-Cash. Для инвесторов.
Калькулятор IP маски подсети (CIDR) онлайн
Профессиональный сетевой калькулятор. Расчет маски подсети (Subnet Mask), CIDR, адреса сети, широковещательного адреса и диапазона хостов.
Калькулятор рекомпозиции тела
Рассчитайте план питания для одновременного снижения жира и набора мышц. Калории, БЖУ, тренировочные дни и дни отдыха.
Калькулятор подарков: бюджет, идеи, годовой план
Калькулятор подарков. Бюджет на подарки, список получателей, идеи по возрасту и интересам, годовой план праздников.
Калькулятор потолочного плинтуса
Расчёт погонных метров потолочного плинтуса (галтели), углов и клея. Пенопласт, полиуретан, ПВХ, гипс, дерево.
Калькулятор наценки и маржи
Расчёт наценки → маржа и обратно. Себестоимость → цена. Таблица соответствия наценки и маржинальности.
Калькулятор точечных светильников (количество по площади, люксы)
Расчёт количества точечных светильников по площади комнаты и нормам освещённости СП 52.13330. Тип ламп, раскладка, шаг, энергопотребление.
Калькулятор фитотерапии: лекарственные растения, настои, настойки и сборы
Фитотерапевтические расчёты: справочник растений, расчёт настоя и настойки, совместимость трав, календарь сбора, дозировка фитопрепаратов.
Калькулятор эпидемиологии
Относительный риск RR, отношение шансов OR, NNT, чувствительность/специфичность, R₀, размер выборки для исследований.
Генератор QR-кодов онлайн (бесплатно)
Создать QR-код для ссылки, текста, визитки. Настройка цвета, логотипа. Скачать в PNG и SVG. Бесплатный генератор QR-кодов.