Glyph WidgetsGlyph Widgets
ИнструментыО проектеКонтактыБлогКонфиденциальностьУсловияУбрать рекламуПоддержать на Ko-fi

© 2026 Glyph Widgets LLC. Все права защищены.

·

100% обработка на стороне клиента

Вернуться в блог

SQL Formatter: форматирование и украшение SQL

SQL Formatter: украшайте запросы MySQL, PostgreSQL, SQL Server, SQLite и др. Регистр ключевых слов, отступы и минификация. Бесплатно.

Glyph Widgets
27 февраля 2026 г.
9 мин чтения
sql formattersql beautifierформатировать sql онлайнsql pretty printmysql formatter

Что такое SQL Formatter?

SQL Formatter — это браузерный инструмент, который преобразует неформатированные, сжатые или непоследовательно оформленные SQL-запросы в чистый, читаемый код с правильными отступами и единообразным регистром ключевых слов. Разработчики и аналитики данных постоянно сталкиваются с плохо отформатированным SQL — запросами, написанными инлайн в коде приложения, выводом отладочных логов ORM, SQL, скопированным из документации, или запросами, утратившими структуру в результате постепенных правок.

Инструмент берёт этот «сырой» SQL и применяет форматирование с учётом диалекта, используя библиотеку sql-formatter, которая понимает синтаксические правила Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL (Oracle), T-SQL (SQL Server) и SQLite. Вы можете выбрать целевой диалект, задать ширину отступа, переключить регистр ключевых слов и минифицировать результат. Вся обработка выполняется локально в вашем браузере — без сервера, без регистрации, бесплатно.

Основные возможности

  • Форматирование SQL с правильными отступами — Использует библиотеку sql-formatter с настраиваемым tabWidth и отступом linesBetweenQueries: 2 между несколькими операторами в одной вставке.
  • Поддержка нескольких диалектов SQL — Выбирайте из Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL (Oracle), T-SQL (SQL Server) и SQLite. Выбор диалекта влияет на обработку диалект-специфичного синтаксиса и зарезервированных слов.
  • Настраиваемые отступы — Выберите 2 или 4 пробела в панели действий.
  • Переключатель регистра ключевых слов — Кнопка переключает между keywordCase: 'upper' и keywordCase: 'preserve'. Когда регистр активен (по умолчанию), все ключевые слова SQL стандартизируются в верхний регистр (SELECT, FROM, WHERE, JOIN и т. д.). При отключении регистр остаётся как в исходном тексте.
  • Минификация SQL — Форматирует с tabWidth: 0 и сворачивает результат в одну строку с одиночными пробелами между токенами.
  • Копирование отформатированного вывода в буфер обмена — Clipboard API с запасным вариантом через textarea.
  • Скачать как файл .sql — Сохраняет вывод как formatted.sql с MIME-типом text/sql.
  • Горячие клавиши — Ctrl+Enter (Cmd+Enter) форматирует; Ctrl+Shift+M (Cmd+Shift+M) минифицирует.

Как использовать SQL Formatter

Шаг 1: Вставьте SQL

Откройте инструмент по адресу /developer/code/sql-formatter. Вставьте SQL-запрос или запросы в панель ввода слева. Поддерживаются несколько операторов, разделённых точкой с запятой — форматировщик вставляет две пустые строки между каждым оператором в выводе.

Шаг 2: Выберите диалект и параметры

В панели действий под панелями:

  1. Выберите диалект из раскрывающегося списка: Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL (Oracle), T-SQL (SQL Server) или SQLite. Выберите диалект, соответствующий СУБД, в которой будет выполняться запрос, для наиболее точного форматирования.
  2. Выберите отступ: 2 или 4 пробела.
  3. Переключите Uppercase: Кнопка Uppercase активна по умолчанию. При активации все ключевые слова SQL нормализуются в верхний регистр. Нажмите, чтобы отключить и сохранить исходный регистр.

Шаг 3: Нажмите Format

Нажмите Format или Ctrl+Enter / Cmd+Enter. Отформатированный SQL появится в панели вывода только для чтения. Инструмент отображает диалект в записи истории (например, «Formatted POSTGRESQL (2,4 КБ)»).

Пример ввода — инлайн-запрос из отладочного вывода приложения:

select u.id,u.email,u.created_at,count(o.id) as order_count,sum(o.total_amount) as total_spent from users u left join orders o on u.id=o.user_id where u.active=true and u.created_at>='2024-01-01' group by u.id,u.email,u.created_at having count(o.id)>0 order by total_spent desc limit 25

Вывод с диалектом PostgreSQL, отступом 2 пробела, uppercase включён:

SELECT
  u.id,
  u.email,
  u.created_at,
  COUNT(o.id) AS order_count,
  SUM(o.total_amount) AS total_spent
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.active = TRUE
  AND u.created_at >= '2024-01-01'
GROUP BY
  u.id,
  u.email,
  u.created_at
HAVING
  COUNT(o.id) > 0
ORDER BY
  total_spent DESC
LIMIT
  25

Шаг 4: Минификация (опционально)

Нажмите Minify или Ctrl+Shift+M / Cmd+Shift+M, чтобы получить однострочную SQL-строку. Настройки верхнего регистра и диалекта применяются и при минификации. Минифицированный SQL удобен для встраивания запросов в переменные окружения, строки конфигурации или сравнительные диффы, где изменения строк создают шум.

Минифицированный вывод того же запроса:

SELECT u.id, u.email, u.created_at, COUNT(o.id) AS order_count, SUM(o.total_amount) AS total_spent FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.active = TRUE AND u.created_at >= '2024-01-01' GROUP BY u.id, u.email, u.created_at HAVING COUNT(o.id) > 0 ORDER BY total_spent DESC LIMIT 25

Шаг 5: Скопируйте или скачайте

Нажмите Copy, чтобы поместить вывод в буфер обмена. Нажмите Download, чтобы сохранить formatted.sql. Обе кнопки неактивны, пока в правой панели нет вывода.

Практические примеры

Очистка отладочного запроса ORM

Отладочный вывод Django или Rails записывает запросы в одну строку со смешанным регистром. Типичная запись лога запросов Django:

select "products"."id", "products"."name", "products"."price", "products"."stock_count" from "products" where "products"."category_id" = 12 and "products"."active" = true order by "products"."name" asc

Выберите диалект PostgreSQL (Django использует кавычки в стиле PostgreSQL с двойными кавычками), включите верхний регистр и нажмите Format. Вывод покажет правильные отступы с ключевыми словами в верхнем регистре, сохраняя идентификаторы в двойных кавычках.

Обзор хранимой процедуры

Хранимая процедура T-SQL была зафиксирована в системе контроля версий как единый неформатированный блок. Выберите диалект T-SQL (SQL Server) и нажмите Format, чтобы получить форматированную, читаемую версию с согласованным регистром ключевых слов. Форматированную версию легче проверять в диффах pull request, и её можно зафиксировать обратно для замены оригинала.

Встраивание запроса в конфигурацию

Ваше приложение хранит отчётный запрос в файле конфигурации YAML в виде однострочной строки. Создайте и протестируйте запрос с правильным форматированием в SQL Formatter, затем нажмите Minify для создания компактной версии для встраивания. Хранение форматированной версии в комментарии рядом с минифицированной делает файл конфигурации удобным для сопровождения.

# Форматированная версия (для читаемости):
# SELECT product_id, SUM(quantity) AS units_sold
# FROM order_items
# WHERE order_date >= :start_date
# GROUP BY product_id
# ORDER BY units_sold DESC

report_query: "SELECT product_id, SUM(quantity) AS units_sold FROM order_items WHERE order_date >= :start_date GROUP BY product_id ORDER BY units_sold DESC"

Советы и лучшие практики

Совместите диалект с вашей базой данных. Хотя большинство операций форматирования SQL не зависят от диалекта, библиотека sql-formatter обрабатывает диалект-специфичный синтаксис (такой как синтаксис приведения :: в PostgreSQL, TOP в T-SQL и различия в расположении LIMIT/OFFSET) точнее при выборе правильного диалекта.

Используйте верхний регистр для читаемости при code review. SQL-конвенция ключевых слов в верхнем регистре широко принята и делает структурные компоненты (SELECT, FROM, WHERE, JOIN) визуально отличимыми от идентификаторов и литералов. Включите переключатель верхнего регистра перед форматированием кода, который будет проверяться или фиксироваться.

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

Несколько операторов поддерживаются. Вы можете вставить файл миграции или скрипт с несколькими операторами CREATE TABLE, INSERT и ALTER TABLE, разделёнными точками с запятой. Форматировщик помещает две пустые строки между каждым оператором для визуального разделения.

Сохраняйте пресеты для командных соглашений. Сторонники Glyph Widgets могут сохранить настройки диалекта, отступа и верхнего регистра как именованный пресет. Создайте по одному пресету на проект (например, «MySQL 2 пробела верхний регистр»), чтобы применять соглашения команды одним кликом при переключении между проектами.

Распространённые проблемы и устранение неполадок

Сообщение об ошибке после нажатия Format — Библиотека sql-formatter выдаёт ошибку при синтаксисе, который она не может распознать. Распространённые причины: проприетарные расширения, не поддерживаемые выбранным диалектом, процедурный код (тела функций PL/pgSQL, блоки T-SQL BEGIN/END) или SQL в сочетании с синтаксисом шаблонов прикладного уровня вроде {{ variable }} или #{variable}. Удалите или закомментируйте неподдерживаемые части перед форматированием.

Ключевые слова не переводятся в верхний регистр — Убедитесь, что кнопка Uppercase находится в активном состоянии (заполненный, основной стиль). Если кнопка в стиле контура, регистр установлен на preserve. Нажмите один раз, чтобы включить режим верхнего регистра.

Неправильный диалект вызывает неожиданные переносы строк — Правила переноса строк библиотеки sql-formatter различаются по диалектам. Если запрос форматируется странно, попробуйте Standard SQL в качестве диалекта.

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

Ошибка «Please enter SQL to format» — Поле ввода пустое. Вставьте SQL-запрос в левую панель перед нажатием Format.

Скачанный файл каждый раз называется formatted.sql — Это фиксированное имя файла. Переименуйте файл после скачивания в соответствии с соглашением об именовании вашего проекта.

Конфиденциальность и безопасность

SQL Formatter обрабатывает весь SQL-текст локально в вашем браузере с помощью библиотеки sql-formatter. Никакой текст запросов — включая имена таблиц, имена столбцов, значения данных, учётные данные в строках подключения или любое другое содержимое — не отправляется на сервер. Инструмент работает офлайн после загрузки страницы. Это делает его безопасным для использования с проприетарными именами схем, внутренней бизнес-логикой или запросами, содержащими тестовые данные.

Часто задаваемые вопросы

SQL Formatter бесплатный? Да, полностью бесплатный. Все функции форматирования, минификации и выбора диалекта доступны без оплаты или регистрации. Функции для сторонников Glyph Widgets, такие как сохранённые пресеты и история сеанса, доступны для сторонников Ko-fi, но основное форматирование SQL не имеет ограничений.

Работает ли офлайн? Да. После загрузки страницы всё форматирование выполняется локально в вашем браузере с использованием JavaScript. Вы можете отключиться от интернета и продолжать форматировать запросы без перебоев.

Мой SQL в безопасности? Да. Ваш SQL никогда не передаётся ни на какой сервер. Он полностью обрабатывается в памяти браузера и удаляется при очистке инструмента или закрытии вкладки. Вы можете безопасно вставлять запросы с внутренними именами таблиц, бизнес-логикой или тестовыми значениями данных.

Какие диалекты SQL поддерживаются? Инструмент поддерживает Standard SQL, MySQL, MariaDB, PostgreSQL, PL/SQL (Oracle), T-SQL (SQL Server) и SQLite. Они напрямую соответствуют параметру language библиотеки sql-formatter.

Инструмент проверяет синтаксис SQL? Библиотека sql-formatter выполняет достаточно разбора для форматирования SQL и выдаёт ошибку для определённого синтаксиса, с которым не может работать, но не является валидатором SQL в строгом смысле. Для настоящей проверки синтаксиса используйте EXPLAIN или планировщик запросов вашей СУБД.

Можно ли форматировать несколько запросов одновременно? Да. Вставьте несколько операторов, разделённых точками с запятой. Форматировщик помещает две пустые строки между каждым форматированным оператором, чётко обозначая границы между запросами.

Что именно делает переключатель Uppercase? При включении форматировщик устанавливает keywordCase: 'upper' в параметрах sql-formatter, что переводит все зарезервированные слова SQL в верхний регистр — SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, LIMIT, имена функций вроде COUNT, SUM, MAX и т. д. При отключении keywordCase: 'preserve' оставляет регистр вашего ввода без изменений.

Поддерживает ли форматировщик CTE (Common Table Expressions)? Да. CTE (WITH ... AS (...)) форматируются корректно с правильными отступами для определения CTE и следующего за ним основного запроса. Это применяется ко всем поддерживаемым диалектам.

Какая горячая клавиша для форматирования? Ctrl+Enter в Windows/Linux или Cmd+Enter в macOS. Для минификации: Ctrl+Shift+M в Windows/Linux или Cmd+Shift+M в macOS.

Можно ли форматировать DDL-операторы вроде CREATE TABLE? Да. Библиотека sql-formatter обрабатывает DDL (CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX и т. д.), а также DML (SELECT, INSERT, UPDATE, DELETE) и DCL (GRANT, REVOKE). Смешанные скрипты с DDL и DML форматируются корректно, если разделены точками с запятой.

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

JSON Formatter — Форматирование и валидация JSON-данных с проверкой схемы, генерацией схемы и интерактивным просмотром дерева.

XML Formatter — Форматирование и валидация XML-документов с настраиваемым отступом и минификацией.

YAML Formatter — Форматирование YAML-файлов конфигурации и конвертация в JSON.

Попробуйте SQL Formatter прямо сейчас: SQL Formatter

Последнее обновление: 27 февраля 2026 г.

Продолжить чтение

Ещё статьиПопробовать SQL Formatter