Инструменты баз данных и SQL

Форматирование SQLЧитайте запросы, сохраняя исходный текст

Читайте запросы, сохраняя исходный текст

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

Ввод SQL

Результат

Обработка локально в браузере. Нет подключения к базе или сохранённой истории.

Диалект и оформление

Здесь нет подключения, чтения схемы, проверки прав или EXPLAIN. Оформление не проверяет синтаксис; успешный AST тоже не доказывает, что запрос работает в вашей базе. Регистр меняется только у структурных ключевых слов; контекстные слова вроде ACTION или NO сохраняются для защиты идентификаторов.

Ввод: 100 000 единиц UTF-16, 20 000 токенов, 50 уровней скобок и 200 инструкций. AST: 5 000 токенов и 30 уровней. Вывод: 1 000 000 единиц; просмотр расширяется по 20 000, экспорт остаётся полным.

Введите SQL или выберите пример.

Форматирование SQL помогает разобрать длинный запрос из журнала перед правкой в редакторе. Сначала выберите исходный диалект: похожие кавычки в разных базах данных могут иметь разный смысл.

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

Зачем нужно Форматирование SQL?

Проследите связи между частями

Форматирование SQL разделяет предложения и выравнивает отступы. Строки, запись чисел и комментарии сверяются с источником. Изменение, при котором нельзя сохранить содержимое, отклоняется вместо скрытой порчи результата.

Плотный запрос превращается в строки с отступами, а блоки строковых значений и комментариев сохраняются.

Отделите структуру от оформления

Режим AST использует отдельный парсер для четырёх диалектов. Oracle доступен для оформления, но без AST. Дерево показывает интерпретацию парсера, а не план выполнения в базе данных.

Запрос разветвляется в синтаксическое дерево рядом с отдельной панелью оформленного текста.

Сначала грамматика, затем оформление

01

Выберите настоящий диалект

У MySQL, PostgreSQL, SQLite, SQL Server и Oracle разные правила кавычек. Выбор PostgreSQL не переводит запрос MySQL: он задаёт грамматику для текущей операции.

02

Определите нужный результат

Оформление облегчает чтение, сжатие уменьшает пробелы, AST выдаёт JSON. Отступы и регистр относятся к тексту SQL. Для дерева действуют более строгие ограничения чисел и сложности.

03

Проверьте замену заранее

Автообработка ждёт 350 мс. Отключите её для кнопки или Ctrl/Cmd+Enter. Перенос результата открывает предпросмотр; после применения отмена восстанавливает ввод, настройки и прошлый результат.

Разные задачи текста и дерева

Пять диалектов оформления

sql-formatter предлагает два или четыре пробела, табуляцию и верхний, нижний либо исходный регистр ключевых слов. Настройки сохраняют регистр идентификаторов, функций и типов данных. Регистр меняется только у структурных ключевых слов; контекстные слова вроде ACTION или NO сохраняются для защиты идентификаторов.

Сжатие с комментариями

Пробелы вне токенов сокращаются без удаления строчных, блочных и исполняемых комментариев. Нужные переводы строк между соседними строковыми литералами PostgreSQL также сохраняются.

Ограниченное синтаксическое дерево

node-sql-parser обрабатывает поддерживаемое подмножество MySQL, PostgreSQL, SQLite и Transact-SQL. В JSON попадает только текущее дерево, без истории редактора и прежнего ввода.

Чего результат не подтверждает

Запросы не выполняются
Здесь нет подключения, чтения схемы, проверки прав или EXPLAIN. Оформление не проверяет синтаксис; успешный AST тоже не доказывает, что запрос работает в вашей базе.
Полные скрипты вне рамок
Процедуры, триггеры, определения функций, блоки BEGIN/DECLARE, пакеты GO, нестандартный DELIMITER, шаблоны и метакоманды клиента не поддерживаются. Для Oracle нет AST.
Точность чисел в AST
Допускаются десятичные целые и обычные дроби до 15 значащих цифр. Экспоненты и шестнадцатеричная запись в этом режиме отклоняются. Числовые узлы сверяются с источником; текстовые результаты сохраняют исходную точность. Перед десятичной точкой нужна цифра (0.5 вместо .5).
Переводы строк иногда нужны
Сжатие не обещает одну строку: удаление переноса после -- может превратить остаток запроса в комментарий. Реальное действие подсказок и исполняемых комментариев на сервере не проверяется.
Явные пределы обработки
Ввод: 100 000 единиц UTF-16, 20 000 токенов, 50 уровней скобок и 200 инструкций. AST: 5 000 токенов и 30 уровней. Вывод: 1 000 000 единиц; просмотр расширяется по 20 000, экспорт остаётся полным.

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

Как лучше оформлять SQL-запросы?

Одинаковый диалект и отступы упрощают чтение соединений, условий и подзапросов. Форматирование SQL здесь отделено от дерева. Изменённый запрос следует проверить и в контексте своей базы данных.

Есть ли причина писать ключевые слова SQL в верхнем регистре?

Верхний регистр выделяет части запроса, но это соглашение о стиле. Выберите нижний или исходный регистр, если так принято в проекте. Содержимое строк и идентификаторы в кавычках не переводятся в верхний регистр.

Можно привести SQL в порядок, не создавая множество строк?

Выберите компактный вывод. Он сокращает внешние пробелы и сохраняет комментарии и необходимые переносы после строчных комментариев или между соседними строками PostgreSQL. Ради одной строки содержимое не удаляется.

Можно проверить корректность запроса MySQL без выполнения?

AST сообщает, принимает ли этот парсер данную грамматику. Он не проверяет таблицы, типы столбцов, права или поведение сервера. Один лишь оформленный результат подтверждает только обработку представления.

Почему метакоманды клиента мешают SQL-форматтерам?

Например, команды psql с обратной косой чертой относятся к клиенту, а не обычной грамматике SQL. Сохраните исходный скрипт отдельно и выделите запрос для оформления; эти команды здесь не интерпретируются.

Нашли проблему с оформлением?

Проверьте следующий запрос

Форматирование SQL позволяет сравнить читаемый текст, компактный вариант или поддерживаемое дерево, прежде чем переносить результат в редактор.