SQL Format

Вставьте свой SQL в поле ниже и используйте доступные параметры для его форматирования. SQL-Format создан администраторами баз данных по стандартам индустрии и крупных технологических компаний. Приятного использования!

Параметры форматирования
Строки: 1 Символы: 0 Стр 1, Стлб 1 SQL · UTF-8

Что такое SQL Format и для кого он

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

Он создан для тех, кто читает SQL целыми днями: разработчиков, проверяющих pull request, администраторов БД, разбирающих медленный запрос, взятый из журнала, аналитиков, приводящих в порядок отчёт перед тем, как им поделиться, и всех, кому достался по наследству оператор на 300 строк, записанный в одну строку. Оформление следует соглашениям, давно принятым в командах, работающих с базами данных, а параметры ниже позволяют подстроить его под стиль вашей команды.

Как пользоваться форматтером

  1. Вставьте или введите SQL в редактор. Можно вставить сразу несколько операторов: они разделяются по точке с запятой и форматируются по очереди.
  2. При необходимости настройте параметры: размер отступа, максимальную ширину строки, расположение запятых, регистр ключевых слов и то, выносятся ли открывающие скобки на отдельную строку.
  3. Нажмите Форматировать или Ctrl + Enter (⌘ + Enter на Mac). Отформатированный SQL заменит текст в редакторе.
  4. Кнопка Копировать помещает результат в буфер обмена, а Очистить позволяет начать заново. В строке состояния показываются количество строк и символов, а также позиция курсора.

Параметры форматирования

Результат определяют пять параметров. Значения по умолчанию (отступ в 4 пробела, 120 столбцов, запятые в конце, ключевые слова в верхнем регистре, скобки на той же строке) подходят большинству команд; для каждого параметра есть отдельная страница с дополнительными примерами.

Отступ (пробелы)

Параметр Отступ (пробелы) задаёт, сколько пробелов используется на каждом уровне вложенности, от 0 и выше; по умолчанию — 4. Символы табуляции во входном тексте заменяются таким же количеством пробелов, кроме как внутри строковых литералов и идентификаторов в кавычках. В примере ниже используется значение 2.

После форматирования в SQL Format
Параметры: Отступ (пробелы) 2 · Максимум столбцов 120 · Запятые: После · Ключевые слова: Верхний регистр · Скобки с новой строки: нет
SELECT c.name,
  SUM(o.total) AS revenue
FROM customers c
  JOIN orders o
    ON  o.customer_id = c.id
WHERE o.status = 'PAID'
GROUP BY c.name

Подробнее: Параметр «Отступ (пробелы)»

Максимум столбцов

Параметр Максимум столбцов — это ширина строки, к которой стремится форматтер (по умолчанию 120). Длинные выражения переносятся на несколько строк, чтобы уложиться в неё; значение 0 отключает перенос.

После форматирования в SQL Format
Параметры: Отступ (пробелы) 4 · Максимум столбцов 60 · Запятые: После · Ключевые слова: Верхний регистр · Скобки с новой строки: нет
SELECT order_id,
    quantity * unit_price * (1 - discount_rate) * (1 +
      tax_rate) + shipping_fee - loyalty_credit AS
      amount_due
FROM order_lines
WHERE order_id = 42

Подробнее: Параметр «Максимум столбцов»

Запятые

Параметр Запятые позволяет выбрать между запятыми в конце (после каждого элемента, по умолчанию) и запятыми в начале (в начале следующей строки). С запятыми в начале легко закомментировать столбец, а при добавлении столбца в конец получаются более компактные диффы.

После форматирования в SQL Format
Параметры: Отступ (пробелы) 4 · Максимум столбцов 120 · Запятые: Перед · Ключевые слова: Верхний регистр · Скобки с новой строки: нет
SELECT id
    ,email
    ,country_code
    ,created_at
FROM customers

Подробнее: Параметр «Запятые»

Ключевые слова

Параметр Ключевые слова переводит ключевые слова SQL, такие как SELECT, FROM и JOIN, в верхний (по умолчанию) или нижний регистр. Строковые литералы и комментарии остаются такими, как вы их написали.

После форматирования в SQL Format
Параметры: Отступ (пробелы) 4 · Максимум столбцов 120 · Запятые: После · Ключевые слова: Нижний регистр · Скобки с новой строки: нет
select id,
    name
from products
where price > 100
order by name

Подробнее: Параметр «Ключевые слова»

Скобки с новой строки

Параметр Скобки с новой строки переносит открывающую скобку блока — например, подзапроса после IN, тела CTE или списка, разбитого на несколько строк, — на отдельную строку, а не оставляет её в конце предыдущей строки.

После форматирования в SQL Format
Параметры: Отступ (пробелы) 4 · Максимум столбцов 120 · Запятые: После · Ключевые слова: Верхний регистр · Скобки с новой строки: да
SELECT name
FROM customers
WHERE id IN
(
    SELECT customer_id
    FROM orders
    WHERE total > 500
)

Подробнее: Параметр «Скобки с новой строки»

Какие диалекты SQL он понимает

Форматтер не привязан к одной СУБД. Он работает с SQL, общим для основных движков: SELECT с соединениями, подзапросами и CASE, INSERT, UPDATE, DELETE, распространённые DDL-операторы, такие как CREATE TABLE и CREATE VIEW, а также комментарии в форме -- и /* */, которые сохраняются.

Для PostgreSQL есть дополнительная поддержка: приведения типов ::, параметры $1 и тела в долларовых кавычках $$ … $$, код PL/pgSQL в которых раскладывается блок за блоком. Идентификаторы в обратных кавычках в MySQL и идентификаторы в квадратных скобках [bracket] в SQL Server сохраняются без изменений. Переключателя диалектов нет, поэтому прочий синтаксис, специфичный для одной СУБД, например разделитель пакетов GO в SQL Server, особым образом не обрабатывается. Различия описаны в руководствах по диалектам.

Что происходит с вашим SQL

Когда вы нажимаете «Форматировать», SQL из редактора отправляется на наш сервер по HTTPS, форматируется в памяти и сразу возвращается на страницу. Он не записывается ни в базу данных, ни в файл, ни в журнал и не передаётся партнёрам по аналитике или рекламе. Тем не менее не вставляйте настоящие пароли, ключи или персональные данные ни в какой онлайн-инструмент; подробности — на странице о конфиденциальности.

Информация о конфиденциальности

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

Сохраняется ли где-нибудь мой SQL?

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

Может ли форматирование изменить то, что делает мой запрос?

Форматтер спроектирован так, чтобы менять только пробельные символы, переносы строк и регистр ключевых слов, но никогда — порядок или логику вашего SQL. Как и в случае с любым инструментом, переписывающим код, просмотрите результат, прежде чем выполнять его в рабочей базе данных. Учтите, что регистр ключевых слов применяется и к именам, совпадающим с ключевыми словами SQL, например к столбцу с именем month.

С какими базами данных он работает?

Он форматирует SQL, общий для PostgreSQL, MySQL, SQL Server, Oracle, Db2 и SQLite, с дополнительной обработкой приведений типов, параметров и тел PL/pgSQL в PostgreSQL. Выбора диалекта нет.

Есть ли ограничение по размеру?

Да. Один запрос может содержать до 20 000 строк SQL.

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

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

Это платно или нужна учётная запись?

Нет. Форматтер бесплатный, регистрация не требуется.

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

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

Помимо самого инструмента, эти руководства рассказывают о соглашениях, на которых строится читаемый SQL: