Pack Camo

SQL Formatter i beautifier

Wcięcia i porządkowanie SQL dla PostgreSQL, MySQL, SQLite, SQL Server i innych.

Wszystko działa lokalnie — nic nie jest wysyłane.

SQL

7 linii · 442 znaki

Sformatowany SQL

Formatowanie…

Czytelny SQL w dialekcie, którego używasz

Ten SQL formatter przyjmuje zapytanie dowolnej długości, nawet kilka instrukcji naraz, i spójnie je wcina: jedna klauzula na linię, kolumny i warunki wyrównane, słowa kluczowe w wybranej wielkości liter. Rozumie składnię ponad piętnastu dialektów, od PostgreSQL, MySQL i SQL Server po BigQuery, Snowflake i Oracle PL/SQL, więc operatory, cudzysłowy i placeholdery typowe dla dialektu pozostają nienaruszone. Przełącz na Minifikuj, aby z powrotem zamienić zapytanie w jedną linię do pliku konfiguracyjnego lub ciągu w kodzie. Wszystko działa w przeglądarce; Twoje zapytania nigdy nie są wysyłane.

Jak sformatować zapytanie SQL

  1. 1Wklej SQL do lewego panelu albo zacznij od przykładowego zapytania.
  2. 2Wybierz dialekt, w którym napisano zapytanie. Standard SQL wystarczy dla większości prostych zapytań; właściwy dialekt ma znaczenie np. przy rzutowaniach :: w PostgreSQL, identyfikatorach w backtickach w MySQL czy [brackets] w SQL Server.
  3. 3Ustaw wielkość liter słów kluczowych i wcięcia, a w Więcej opcji wielkość liter typów danych i funkcji, wcięcia tabelaryczne, położenie AND/OR i puste linie między instrukcjami.
  4. 4Sformatowane zapytanie pojawia się po prawej podczas pisania. Jeśli nie da się go przeanalizować, wyświetlana jest linia i kolumna problemu.
  5. 5Skopiuj wynik, pobierz go jako plik .sql lub wybierz Minifikuj, aby zwinąć go do jednej linii.

Po co formatować SQL?

SQL pisze się raz, a czyta wiele razy: w code review, w logu wolnych zapytań, w migracji, którą ktoś musi debugować o 2 w nocy. Zapytanie wygenerowane przez ORM lub skopiowane z logu zwykle przychodzi jako jedna ogromna linia. Umieszczenie każdej klauzuli w osobnej linii i wcięcie podzapytań ujawnia strukturę: które tabele są łączone, po czym i które warunki gdzie obowiązują.

Spójne formatowanie zmniejsza też diffy. Gdy cały zespół formatuje zapytania tak samo, zmieniony warunek widać jako jedną zmienioną linię zamiast przebudowanego akapitu.

Opcje formatowania

Wielkość liter słów kluczowych
UPPER wyróżnia SELECT, FROM i WHERE na tle nazw tabel i kolumn, to najczęstsza konwencja. lower pasuje zespołom, którym wielkie litery wydają się krzykliwe. Zachowaj pozostawia słowa kluczowe tak, jak je wpisano.
Wcięcia
Dwie lub cztery spacje albo tabulatory. Style tabelaryczne dopełniają słowa kluczowe do kolumny o stałej szerokości, aby wyrażenia po nich były wyrównane.
Położenie AND / OR
Na początku umieszcza każdy operator logiczny na początku linii, co ułatwia zakomentowanie jednego warunku; na końcu zostawia go na końcu poprzedniej linii.
Szerokość wyrażenia
Wyrażenia w nawiasach krótsze niż ta liczba znaków zostają w jednej linii; dłuższe są dzielone.
Zwarte operatory
Zapisuje a+b zamiast a + b. Zwięźle, ale mniej czytelnie.

Wybór właściwego dialektu

Dialekty SQL różnią się bardziej, niż się wydaje: sposobem cytowania identyfikatorów ("name", `name` lub [name]), wyglądem placeholderów (?, $1, :name, @param) i listą słów zastrzeżonych. Formatter używa osobnej gramatyki dla każdego dialektu, więc nie pomyli ciała funkcji $$ w PostgreSQL ani komentarza # w MySQL z czymś innym.

Jeśli widzisz błąd parsowania przy zapytaniu, które na pewno jest poprawne, najpierw sprawdź dialekt. Standard SQL jest celowo rygorystyczny i nie zna wszystkich rozszerzeń producentów.

Minifikacja SQL

Minifikacja to odwrotność formatowania: usuwa komentarze i zamienia wszystkie białe znaki na pojedyncze spacje, dając jedną linię do wklejenia w plik YAML, zmienną środowiskową lub literał tekstowy. Literały tekstowe, identyfikatory w cudzysłowach i ciała w dollar-quoting są kopiowane dokładnie, więc wartość taka jak 'two spaces' zachowuje obie spacje. Wskazówki optymalizatora zapisane jako /*+ … */ i wykonywalne komentarze MySQL /*! … */ zostają, bo zmieniają sposób wykonania zapytania.

Pracujesz z JSON? JSON Formatter robi to samo dla dokumentów JSON, a minifikator kodu obsługuje CSS, JavaScript i HTML.

Najczęstsze pytania

Czy mój SQL jest wysyłany na serwer?
Nie. Formatowanie i minifikacja działają w całości w przeglądarce, więc zapytania z nazwami tabel, danymi klientów czy danymi logowania nigdy nie opuszczają Twojego urządzenia.
Jakie dialekty SQL są obsługiwane?
Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Amazon Redshift, Spark SQL, Hive, Trino i Presto, DuckDB, ClickHouse, IBM Db2 i Db2 for IBM i, SingleStoreDB, TiDB oraz Couchbase N1QL.
Czy formatowanie zmienia działanie zapytania?
Nie. Zmieniają się tylko białe znaki i, jeśli wybierzesz, wielkość liter słów kluczowych, typów danych i funkcji. Identyfikatory w cudzysłowach i literały tekstowe nigdy nie są zmieniane. Zmiana wielkości liter identyfikatorów bez cudzysłowów jest bezpieczna w większości baz, ale zostaw Zachowaj, jeśli Twoja baza rozróżnia w nich wielkość liter.
Skąd błąd parsowania?
Albo zapytanie ma błąd składni, np. niezamknięty nawias lub cudzysłów, albo używa składni, której wybrany dialekt nie obejmuje. Komunikat pokazuje linię i kolumnę, w której parsowanie się zatrzymało; spróbuj dialektu, którego faktycznie używa Twoja baza.
Czy mogę sformatować kilka instrukcji naraz?
Tak. Oddziel je średnikami, a każda zostanie sformatowana po kolei, z wybraną liczbą pustych linii pomiędzy.
Czy komentarze są zachowywane?
Przy formatowaniu tak: komentarze liniowe i blokowe zostają na swoim miejscu. Minifikacja je usuwa, z wyjątkiem wskazówek optymalizatora i wykonywalnych komentarzy MySQL.
Jak zminifikować zapytanie SQL do jednej linii?
Wybierz Minifikuj u góry narzędzia. Komentarze są usuwane, a białe znaki skracane, natomiast literały tekstowe i identyfikatory w cudzysłowach zostają dokładnie takie, jak zapisano.