Перейти до вмісту

Форматування запитів SQL

Форматуйте або мінімізуйте SQL для MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Oracle та ще 14 діалектів у потрібному стилі просто у браузері.

Відформатований
Натисніть «Форматувати SQL», щоб привести запит до читабельного вигляду.
Працює у браузері · без надсилання на серверЯк це працює

Як користуватися: Форматувальник SQL

  1. 1

    Вставте SQL

    Вставте запит чи цілий скрипт або відкрийте файл .sql; кнопка «Приклад» покаже заплутаний запит для спроби.

  2. 2

    Оберіть діалект

    Виберіть свою базу даних, щоб лапки, оператори й ключові слова розпізнавалися правильно.

  3. 3

    Налаштуйте стиль

    Оберіть регістр ключових слів, відступи, розташування ком і розмітку відповідно до правил вашої команди.

  4. 4

    Форматуйте й копіюйте

    Натисніть «Форматувати SQL» або «Стиснути», потім скопіюйте підсвічений результат або завантажте його як .sql.

Ліміти та Pro

Безкоштовно й без реєстрації: 20 діалектів, файли .sql до 10 MB і скрипти, що форматуються за 20 секунд; результат понад 600 000 символів показується частково, а копіюється й завантажується повністю.

Pro прибирає рекламу; сам форматувальник однаковий в усіх тарифах. Дивитися Pro

Про інструмент: Форматувальник SQL

Вставте однорядковий запит із журналу, налагоджувального виводу ORM або повідомлення колеги в чаті, і цей форматувальник розкладе його так, як це зробила б уважна людина: одне речення на рядок, вибрані стовпці й обʼєднання з відступом під своїм ключовим словом, а підзапити вкладені так, що структуру видно одразу. Він розуміє 20 діалектів SQL — стандартний SQL, MySQL, MariaDB, PostgreSQL, SQL Server T-SQL, SQLite, Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark, Trino, DuckDB, ClickHouse, Hive, Db2, Db2 for i, SingleStore, TiDB і Couchbase N1QL, тож специфічний синтаксис, як-от ідентифікатори в зворотних лапках, квадратні дужки, приведення типів через :: або рядки в доларових лапках, зберігається без змін.

Стиль ви обираєте самі: ключові слова у верхньому або нижньому регістрі чи як написано; назви функцій і типи даних так само; два пробіли, чотири пробіли або табуляція; коми в кінці або на початку рядків; AND і OR до або після переносу рядка; стандартна чи табличSна розмітка, що вирівнює ключові слова в стовпець. Скрипти з кількома запитами розділяються порожнім рядком. Стиснення робить протилежне: прибирає коментарі та зайві пропуски, не чіпаючи рядки, імена в лапках і підказки оптимізатора.

Результат підсвічується синтаксисом, його можна скопіювати або завантажити як файл .sql. Форматування виконує бібліотека sql-formatter з відкритим кодом, яка завантажується під час першого натискання «Форматувати SQL» і працює у фоновому потоці, щоб довгі скрипти не блокували сторінку.

Форматувальник змінює лише пропуски та регістр літер. Він не перевіряє назви таблиць чи стовпців, не виконує запит і не переписує його для швидкодії, а для збережених процедур з нетиповим синтаксисом виробника може знадобитися найближчий діалект.

Приватність

SQL форматується у вашому браузері через Web Worker, тому запити з назвами таблиць, даними клієнтів чи обліковими даними ніколи не надсилаються на сервер. Вибраний діалект і стиль зберігаються в локальному сховищі, а сам SQL не зберігається.

Можливості

20 діалектів SQL

MySQL, PostgreSQL, SQL Server, Oracle, BigQuery, Snowflake та ще 14.

Ваш стиль

Регістр ключових слів, відступи, коми на початку чи в кінці, розташування AND/OR і табличне вирівнювання.

Є й стиснення

Приберіть коментарі та пропуски, щоб вбудувати SQL у код; рядки й підказки лишаються без змін.

Форматувальник SQL: поширені запитання

Чи змінює форматування те, що робить мій запит?
Ні. Змінюються лише пропуски, переноси рядків і регістр ключових слів, функцій та типів даних; ідентифікатори, рядкові літерали й коментарі зберігаються точно. Регістр ключових слів безпечний, бо вони нечутливі до регістру. Якщо в інших інструментах змінюєте регістр ідентифікаторів, памʼятайте: PostgreSQL розрізняє регістр у назвах у лапках, тому цей форматувальник їх не чіпає.
Чому я бачу помилку розбору?
Форматувальнику потрібно розпізнати структуру запиту, тому незакрита дужка, пропущене ключове слово або синтаксис іншої бази його зупиняють. У повідомленні вказано рядок, стовпець і те, що очікувалося. Оберіть діалект своєї бази: ідентифікатори в квадратних дужках потребують SQL Server, зворотні лапки — MySQL, MariaDB або BigQuery. Також перевірте, чи немає незавершених запитів у кінці.
Де краще ставити коми: на початку чи в кінці рядка?
Коми в кінці — найпоширеніший стиль, його видає більшість інструментів. Коми на початку дають змогу легко закоментувати останній стовпець, а під час додавання стовпця зміна в diff займає один рядок, тому їх люблять деякі команди даних. Обирайте те, що прийнято у вашій команді; цей параметр діє лише для стандартної розмітки.
Чи можна форматувати збережені процедури та скрипти з багатьма запитами?
Так. Вставте цілий скрипт, і кожен запит буде відформатовано та відокремлено порожнім рядком, зокрема CREATE TABLE, INSERT, UPDATE, MERGE і поширені процедурні блоки. Специфічний для виробника процедурний код, як-от складні пакети T-SQL з роздільниками GO чи пакети PL/SQL, може розпізнаватися не повністю; оберіть відповідний діалект і форматуйте менші блоки, якщо частина не проходить.
Що прибирає стиснення?
Стиснення видаляє коментарі -- і /* */ (а в MySQL та MariaDB ще й коментарі #), замінює послідовності пропусків і переносів рядків одним пропуском та прибирає пропуски біля ком і дужок. Рядкові літерали, ідентифікатори в лапках і підказки оптимізатора у вигляді /*+ … */ або MySQL /*! … */ зберігаються, тож стиснений запит працює точно так само, як оригінал.