DevToolPal
RU

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

Форматирование SQL-запросов для MySQL, PostgreSQL, SQL Server, Oracle, SQLite, BigQuery и других СУБД.

Работает локально, без загрузки на сервер

Параметры

Ввод

Символов: 0 · 0 B

Результат

Символов: 0 · 0 B

Что делает инструмент

Форматтер SQL превращает длинный однострочный запрос в читаемый, с единообразными отступами. Каждое предложение (SELECT, FROM, WHERE, GROUP BY, ORDER BY) начинается с новой строки, выбираемые столбцы и условия перечисляются по одному на строку, соединения выравниваются под таблицей, к которой они присоединяются, а подзапросы получают отступ внутри своих скобок.

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

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

  1. Вставьте одну или несколько SQL-инструкций в поле Ввод, перетащите на него файл .sql или нажмите Пример.
  2. Выберите Диалект своей базы данных.
  3. Выберите, как писать Ключевые слова: в ВЕРХНЕМ РЕГИСТРЕ, в нижнем регистре или как написано. Имена функций, например COUNT, следуют той же настройке.
  4. Выберите Отступ: 2 пробела, 4 пробела или табуляция.
  5. Скопируйте результат или скачайте его как файл .sql. Горячие клавиши: Ctrl/Cmd+Enter — форматировать, Ctrl/Cmd+Shift+C — копировать.

Несколько инструкций, разделённых точкой с запятой, отделяются друг от друга пустой строкой. Комментарии остаются на своих местах.

Пример

select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id group by u.id

превращается в

SELECT
  u.id,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
GROUP BY
  u.id

Советы

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

Частые вопросы

› Отправляется ли мой SQL на сервер?

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

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

Стандартный SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle (PL/SQL), BigQuery, Snowflake, Redshift и Spark SQL. Правильно выбранный диалект помогает с синтаксисом, характерным для конкретной СУБД, например идентификаторами в обратных кавычках, приведением типов через :: или именами в квадратных скобках.

› Меняет ли форматирование то, что делает запрос?

Нет. Меняются только пробельные символы и, если вы так выберете, регистр ключевых слов и имён функций. Идентификаторы, строковые литералы и комментарии сохраняются ровно в том виде, в каком написаны.

› Почему появляется "Unexpected end of input"?

Обычно не закрыта скобка или кавычка. Ошибка указывает на конец запроса; ищите последнюю открывающую ( или ', у которой нет пары.