Бесплатный конвертер

SQL запрос Форматирование и подсветка

Форматируйте, украшайте и подсвечивайте SQL-запросы мгновенно в браузере. Бесплатно, безопасно, загрузка не требуется.

Перетащите файл .sql сюда

Или вставьте SQL-запрос ниже

Или

Об этом инструменте

SQL-запросы быстро становятся длинными и сложными — объединения множества таблиц, вложенные подзапросы, большие предложения WHERE со множеством условий, сложные выражения CASE. Компактный SQL, зажатый в несколько строк, нечитабелен; SQL с правильными отступами и последовательным написанием заглавных букв делает структуру запроса видимой с первого взгляда. Форматирование — это разница между запросом, который можно отладить, и запросом, который нельзя.

Этот форматтер анализирует SQL и выдает выходные данные с отступом и правильным регистром. Ключевые слова SQL (SELECT, FROM, WHERE, JOIN, GROUP BY) обычно пишутся прописными буквами, имена таблиц и столбцов соответствуют источнику, а отступы отражают вложенность (подзапросы имеют отступ внутри своих родительских элементов, ветки CASE имеют отступ). Поддержка нескольких диалектов позволяет обрабатывать различия MySQL, PostgreSQL, SQL Server, Oracle и SQLite.

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

Зачем форматировать SQL

Чтение плотного неформатированного SQL требует умственных усилий. Определить, какие условия принадлежат каким JOIN, где начинаются и заканчиваются подзапросы и как связаны CASE-ветви, становится сложнее, когда все состоит из нескольких строк. Форматированный SQL быстрее читается и уменьшает количество ошибок из-за неправильного чтения структуры.

Особенно полезна проверка кода. Рецензенты могут быстро понять, что делает запрос, когда он отформатирован; чтение неформатированного SQL во время проверки поощряет пропуск или штамповку. Форматированный SQL также создает значимые различия при изменении запросов.

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

Вставьте запрос, нажмите «Форматировать».

  1. Вставьте свой SQL: Перетащите запрос в область ввода. Работают как один оператор, так и ввод нескольких операторов.
  2. Выберите диалект: По умолчанию используется общий SQL. Выберите MySQL, PostgreSQL, SQL Server или Oracle для распознавания ключевых слов с учетом диалекта.
  3. Настроить параметры: Размер отступа (обычно 2 или 4 пробела), регистр ключевых слов (чаще всего используются прописные буквы, некоторые команды предпочитают нижний регистр), расположение запятых (в конце или впереди).
  4. Формат: Отформатированный вывод появляется немедленно. Скопируйте или загрузите для использования.

Общие случаи использования

Технические детали

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

Правила отступов: SELECT, FROM, WHERE, GROUP BY, ORDER BY каждое на своей строке. Объединенные таблицы в последующих строках с отступом FROM. Условия в WHERE на отдельных строках для удобства чтения. Подзапросы в собственных блоках с отступом.

Соглашения о регистре: наиболее распространены ключевые слова в верхнем регистре (SELECT, FROM, WHERE). Некоторые команды предпочитают строчные буквы. Идентификаторы (имена таблиц и столбцов) сохраняют регистр источника.

Лучшие практики

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

Изменяет ли форматирование поведение запроса?
Нет. Форматирование SQL корректирует только пробелы, разрывы строк и регистр ключевых слов. Логика запроса, план выполнения и результаты остаются идентичными. Это просто улучшение читабельности.
Какие диалекты SQL поддерживаются?
Инструмент поддерживает стандартный SQL и определенные диалекты: MySQL, PostgreSQL, SQLite, SQL Server (T-SQL) и Oracle PL/SQL. Ключевые слова и функции, специфичные для диалекта, распознаются правильно.
Обрабатывает ли он подзапросы и CTE?
Да. Общие табличные выражения (предложения WITH), вложенные подзапросы, оконные функции и сложные цепочки JOIN форматируются с соответствующими уровнями отступов.
Могу ли я использовать это для хранимых процедур?
Средство форматирования лучше всего обрабатывает отдельные операторы SQL. Процедуры, триггеры и функции с несколькими операторами могут работать, но форматирование сложной процедурной логики (IF/ELSE, циклы) зависит от диалекта.
Должны ли ключевые слова быть прописными или строчными буквами?
Конвенция варьируется. Ключевые слова в верхнем регистре являются традиционными и распространенными. Строчные буквы все чаще используются в современных руководствах по стилю. Выберите один и сохраняйте последовательность в кодовой базе.
Форматирует ли он хранимые процедуры?
Большинство средств форматирования обрабатывают синтаксис хранимых процедур (CREATE PROCEDURE, блоки BEGIN/END, поток управления). Расширения, специфичные для диалекта, могут поддерживаться частично.
Загружен ли мой SQL?
Нет. Форматирование происходит в вашем браузере.
Можно ли форматировать из командной строки?
Некоторые форматировщики SQL предлагают инструменты CLI (sqlfluff, sql-formatter). Используйте их для пакетного форматирования или интеграции CI. Средства форматирования браузера предназначены для разового использования.