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

Превратите запутанный SQL в чистые, читаемые запросы.

Работает в браузере. То, что вы вводите, никуда не отправляется.

Как форматировать SQL

  1. Вставьте свой SQL-запрос.
  2. Выберите диалект, регистр ключевых слов и размер отступа.
  3. Скопируйте или скачайте отформатированный SQL.

Различия диалектов, которые здесь учитываются

ДиалектОсобенность, которая учитывается
MySQLИдентификаторы в обратных кавычках
PostgreSQLИдентификаторы в двойных кавычках и приведение типов ::
SQL ServerИдентификаторы в квадратных скобках и TOP вместо LIMIT
SQLiteБолее гибкие правила кавычек
BigQueryПути к таблицам в обратных кавычках вроде project.dataset.table
Стандартный SQLИдентификаторы в двойных кавычках в стиле ANSI, целевой вариант по умолчанию

Что меняет форматирование, а что оставляет как есть

  • Меняет: регистр ключевых слов, отступы условий и join, а также где ставятся переносы строк перед SELECT, FROM, WHERE и JOIN.
  • Оставляет как есть: имена таблиц и столбцов, содержимое строковых литералов и любые комментарии в запросе.
  • Комментарии, написанные через -- или обёрнутые в /* */, остаются точно на своих местах, привязанные к той же строке или блоку.

Советы по форматированию SQL

  • Вставляйте несколько инструкций через точку с запятой, и каждая отформатируется на своём месте.
  • Выбирайте диалект, на котором реально работает ваша база данных, чтобы кавычки идентификаторов в результате совпадали с тем, что ожидает ваш сервер.
  • Если стиль кавычек диалекта вызывает ошибку в вашей базе данных, попробуйте стандартный SQL и подправьте идентификаторы вручную.
  • Больший размер отступа может облегчить чтение длинного запроса с множеством join, ведь каждый уровень вложенности заметнее выделяется.

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

Какие диалекты SQL поддерживаются?

Стандартный SQL, MySQL, PostgreSQL, SQL Server, SQLite и BigQuery. Каждый из них немного по-своему обрабатывает кавычки и функции.

Это проверяет, корректен ли мой SQL?

Нет. Это переформатирует запрос для читаемости. Оно не подключается к базе данных и не проверяет имена таблиц и столбцов.

Можно форматировать сразу целый файл с запросами?

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

Что задаёт размер отступа?

Он задаёт, сколько пробелов получает каждый уровень вложенности, от 2 для компактных запросов до 8 для глубоко вложенных join и подзапросов.

Мой SQL куда-то загружается?

Нет. Форматирование происходит в браузере, поэтому ваши запросы и любые данные в них остаются на вашем устройстве.

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

Нет. Условия, join и подзапросы остаются в том порядке, в котором вы их написали. Меняются только отступы, переносы строк и регистр ключевых слов.

Можно форматировать хранимые процедуры или скрипты с переменными?

Обычные инструкции SELECT, INSERT, UPDATE и DELETE форматируются хорошо. Специфичный для диалекта процедурный синтаксис, вроде управления потоком в T-SQL или блоков PL/pgSQL, может отступать не так аккуратно, ведь форматировщик нацелен на стандартный синтаксис запросов.

Обрабатываются ли CTE (конструкции WITH) и оконные функции?

Да. Общие табличные выражения и оконные функции форматируются так же, как любой другой синтаксис, который понимает библиотека sql-formatter, включая их собственные отступы.

Похожие инструменты