SQL-форматер і beautifier

Вставте заплутаний запит і отримайте чистий SQL з охайними відступами. 17 діалектів, вибір регістру ключових слів і мініфікація в один клік — усе в браузері.

Працює в браузеріБез реєстраціїНічого не завантажується

Відформатований SQL

Як користуватися: SQL-форматер

  1. Вставте один або кілька SQL-запитів у поле введення чи відкрийте файл .sql.
  2. Виберіть діалект вашої СУБД, щоб її синтаксис — приведення ::, [brackets], зворотні лапки чи рядки $$ — розбирався правильно.
  3. Задайте регістр ключових слів (ВЕЛИКІ, малі або як є), відступи й кількість порожніх рядків між запитами.
  4. Перемкніться на Мініфікувати, щоб прибрати коментарі й пробіли для логів, ORM або параметрів URL.
  5. Скопіюйте результат або завантажте його як файл .sql.

Навіщо форматувати SQL?

Запити, скопійовані з логів ORM, планів виконання чи коду застосунку, зазвичай приходять одним довгим рядком. Якщо винести кожне речення (SELECT, FROM, JOIN, WHERE, GROUP BY) на окремий рядок і зробити відступи для стовпців і умов, логіка стає читабельною. Це також зменшує дифи на код-рев'ю й допомагає помітити пропущену умову з'єднання чи недоречний OR.

Угоди щодо стилю SQL

  • Ключові слова у верхньому регістрі (SELECT, WHERE) відділяють синтаксис SQL від імен таблиць і стовпців. Так радить більшість посібників зі стилю, хоча в dbt і командах аналітики популярний нижній регістр.
  • Один стовпець на рядок — тоді додавання чи видалення стовпця дає диф в один рядок.
  • Однакові відступи (2 або 4 пробіли) усередині речень і підзапитів показують вкладеність з першого погляду.
  • Завершувачі запитів: закінчуйте кожен запит ;, щоб скрипти з кількох запитів були однозначними.

Підтримувані діалекти SQL

Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore і TiDB. Якщо запит не розбирається, спробуйте конкретніший діалект: @variables, параметри $1 і специфічні для СУБД оператори розпізнаються лише у своєму діалекті.

Що робить мініфікатор

Режим мініфікації видаляє коментарі --, # і /* */, стискає пробіли й переведення рядків в одиночні пробіли та прибирає пробіли навколо ком і дужок. Рядкові літерали й ідентифікатори в лапках ('…', "…", `…`, […], $$…$$) копіюються байт у байт, тому зміст запиту не змінюється.

Поширені запитання

Чи надсилається мій SQL на сервер?
Ні. Форматування виконує open-source бібліотека sql-formatter просто в браузері. Запити з іменами таблиць, даними клієнтів чи обліковими даними залишаються на вашому комп'ютері.
Чи змінює форматування поведінку запиту?
Ні. Змінюються лише пробіли, переведення рядків і (за вашим вибором) регістр ключових слів. Ідентифікатори, рядкові літерали й коментарі зберігаються як є.
Чому я отримую помилку розбору на коректному SQL?
Імовірно, запит використовує синтаксис іншої СУБД. Виберіть відповідний діалект, наприклад PostgreSQL для приведень ::type або SQL Server для імен у квадратних дужках ([bracketed]) і @params.
Чи можна відформатувати кілька запитів одразу?
Так. Розділяйте запити крапкою з комою. Можна вибрати, скільки порожніх рядків буде між ними в результаті.
Чи змінить регістр ключових слів імена моїх стовпців?
Ні. Регістр змінюється лише в зарезервованих ключових слів, типів даних і вбудованих функцій. Імена таблиць і стовпців зберігають початкове написання.

Схожі інструменти