Formater i beautifier SQL

Wklej nieczytelne zapytanie i otrzymaj czysty SQL ze spójnymi wcięciami. Obsługuje 17 dialektów, wielkość liter słów kluczowych i minifikację jednym kliknięciem – wszystko w przeglądarce.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Sformatowany SQL

Jak używać: Formater SQL

  1. Wklej jedną lub więcej instrukcji SQL do pola wejściowego lub otwórz plik .sql.
  2. Wybierz dialekt swojej bazy danych, aby jego składnia, np. rzutowania ::, [nawiasy], backticki czy ciągi $$, była poprawnie parsowana.
  3. Ustaw wielkość liter słów kluczowych (WIELKIE, małe lub bez zmian), wcięcia i liczbę pustych linii między instrukcjami.
  4. Przełącz na Minifikuj, aby usunąć komentarze i białe znaki na potrzeby logów, ORM-ów lub parametrów URL.
  5. Skopiuj wynik lub pobierz go jako plik .sql.

Po co formatować SQL?

Zapytania skopiowane z logów ORM, planów zapytań czy kodu aplikacji zwykle mają postać jednej długiej linii. Umieszczenie każdej klauzuli (SELECT, FROM, JOIN, WHERE, GROUP BY) w osobnej linii i wcięcie kolumn i warunków czyni logikę czytelną. Zmniejsza też diffy w code review i pomaga wychwycić brakujący warunek złączenia lub źle umieszczone OR.

Konwencje stylu SQL

  • Słowa kluczowe wielkimi literami (SELECT, WHERE) oddzielają składnię SQL od nazw tabel i kolumn. Zaleca to większość przewodników stylu, choć małe litery są popularne w dbt i zespołach analitycznych.
  • Jedna kolumna na linię sprawia, że dodanie lub usunięcie kolumny to diff jednej linii.
  • Spójne wcięcia (2 lub 4 spacje) w klauzulach i podzapytaniach pokazują zagnieżdżenie na pierwszy rzut oka.
  • Terminatory instrukcji: kończ każdą instrukcję znakiem ;, aby skrypty z wieloma instrukcjami były jednoznaczne.

Obsługiwane dialekty 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 i TiDB. Jeśli zapytanie nie daje się sparsować, wybierz bardziej konkretny dialekt: @variables, parametry $1 i operatory specyficzne dla dostawcy są rozpoznawane tylko we własnym dialekcie.

Co robi minifikator

Tryb minifikacji usuwa komentarze --, # i /* */, zwija białe znaki i znaki nowej linii do pojedynczych spacji oraz usuwa spacje wokół przecinków i nawiasów. Literały ciągów i identyfikatory w cudzysłowach ('…', "…", `…`, […], $$…$$) są kopiowane bajt po bajcie, więc znaczenie zapytania nigdy się nie zmienia.

Najczęściej zadawane pytania

Czy mój SQL jest wysyłany na serwer?
Nie. Formatowanie korzysta z otwartoźródłowej biblioteki sql-formatter działającej w przeglądarce. Zapytania z nazwami tabel, danymi klientów czy poświadczeniami pozostają na Twoim komputerze.
Czy formatowanie zmienia działanie zapytania?
Nie. Zmieniają się tylko białe znaki, podziały linii i (jeśli wybierzesz) wielkość liter słów kluczowych. Identyfikatory, literały ciągów i komentarze pozostają bez zmian.
Dlaczego dostaję błąd parsowania przy poprawnym SQL?
Zapytanie prawdopodobnie używa składni specyficznej dla innej bazy danych. Wybierz pasujący dialekt, np. PostgreSQL dla rzutowań ::type lub SQL Server dla nazw w [nawiasach] i @params.
Czy mogę sformatować kilka instrukcji naraz?
Tak. Oddziel instrukcje średnikami. Możesz wybrać, ile pustych linii ma je dzielić w wyniku.
Czy zmiana wielkości liter słów kluczowych zmieni nazwy moich kolumn?
Nie. Zmieniana jest tylko wielkość liter zastrzeżonych słów kluczowych, typów danych i wbudowanych funkcji. Nazwy tabel i kolumn zachowują oryginalną pisownię.

Powiązane narzędzia