SQL-форматер і beautifier
Вставте заплутаний запит і отримайте чистий SQL з охайними відступами. 17 діалектів, вибір регістру ключових слів і мініфікація в один клік — усе в браузері.
Працює в браузеріБез реєстраціїНічого не завантажується
Як користуватися: SQL-форматер
- Вставте один або кілька SQL-запитів у поле введення чи відкрийте файл
.sql. - Виберіть діалект вашої СУБД, щоб її синтаксис — приведення
::,[brackets], зворотні лапки чи рядки$$— розбирався правильно. - Задайте регістр ключових слів (ВЕЛИКІ, малі або як є), відступи й кількість порожніх рядків між запитами.
- Перемкніться на Мініфікувати, щоб прибрати коментарі й пробіли для логів, ORM або параметрів URL.
- Скопіюйте результат або завантажте його як файл
.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 на сервер?
Чи змінює форматування поведінку запиту?
Чому я отримую помилку розбору на коректному SQL?
::type або SQL Server для імен у квадратних дужках ([bracketed]) і @params.