TanodTools
PL

Formatuj SQL

Wklej zapytanie, wybierz bazę danych i odbierz je z wcięciami, z jedną klauzulą w wierszu.

Działa w całości w Twojej przeglądarce

Wcięcie

Dane do około 10 MB. Zmienia tylko układ: nie uruchamia SQL, nie sprawdza go ze schematem ani go nie optymalizuje.

Jak sformatować zapytanie SQL

  1. Wklej zapytanie do pola albo kliknij Wstaw przykład, aby zobaczyć, jak to działa.
  2. W polu Dialekt wybierz swoją bazę danych, a potem ustaw wielkość słów kluczowych i rozmiar wcięcia.
  3. Sformatowane zapytanie pojawia się poniżej w trakcie wpisywania. Skopiuj je albo pobierz jako plik .sql.

Jak uczynić SQL czytelnym

Baza danych czyta zapytanie tak samo, niezależnie od tego, czy mieści się w jednym wierszu, czy w czterdziestu, dlatego zapytania wklejone z logów, ORM-ów i narzędzi monitorujących tak często trafiają do nas jako jeden nieprzerwany ciąg. Formatowanie umieszcza każdą główną klauzulę (SELECT, FROM, WHERE, GROUP BY, ORDER BY) w osobnym wierszu, a kolumny, warunki i podzapytania wcina pod nią, dzięki czemu od razu widać kształt zapytania i łatwo zauważyć brakujący warunek złączenia.

Układ zależy od wybranego dialektu, ponieważ słowa i symbole różnią się między bazami danych. Rzutowanie PostgreSQL, takie jak price::numeric, numerowany parametr jak $1, nazwa w odwróconych apostrofach w MySQL, klauzula Oracle CONNECT BY i TOP 10 z SQL Server są poprawne w jednym dialekcie, a w innym są błędem składni. Symbole zastępcze parametrów (?, $1, :name, @name) są rozpoznawane i pozostawiane bez zmian.

Wielkość słów kluczowych nie wpływa na wykonanie zapytania, więc jest to wyłącznie kwestia stylu przyjętego w zespole. Formatter rozumiejący gramatykę może ją bezpiecznie zmienić, ponieważ wie, które słowa są słowami kluczowymi, a które nazwami kolumn lub tekstem w cudzysłowie.

Wskazówki

  • Porównujesz zapytanie przed zmianą i po niej? Sformatuj oba z tymi samymi ustawieniami i porównaj w narzędziu Porównaj teksty.
  • Zapytanie zwraca kolumny JSON? Wklej wartość do narzędzia Formatuj i waliduj JSON, aby ją przeczytać.
  • Musisz zmienić nazwę tabeli w długim skrypcie? Zrobisz to przed formatowaniem w narzędziu Znajdź i zamień.

Najczęstsze pytania

Czy mój SQL jest przesyłany?

Nie. Kod formatujący to skrypt udostępniany przez tę stronę i ładowany przy pierwszym wklejeniu zapytania; samo zapytanie zostaje w przeglądarce i nie jest wysyłane na żaden serwer.

Dlaczego dialekt ma znaczenie?

Bazy danych mają własną składnię. PostgreSQL ma rzutowania :: i parametry $1, SQL Server ma nazwy w [nawiasach kwadratowych] i TOP, MySQL i MariaDB ujmują nazwy w odwrócone apostrofy, a BigQuery ma własne postacie tablic i struktur. Wybór właściwego dialektu pozwala parserowi zaakceptować zapytanie. Standardowy SQL to bezpieczny wybór, gdy nie masz pewności, ale jest bardziej restrykcyjny wobec rozszerzeń poszczególnych producentów.

Dlaczego widzę błąd dla zapytania, które w mojej bazie działa bez problemu?

Formatter czyta całą instrukcję, a nie tylko przesuwa wcięcia wierszy, więc niezamknięty nawias lub cudzysłów go zatrzyma, tak samo jak składnia należąca do innego dialektu. Komunikat podaje wiersz i kolumnę, w której parser się poddał, a najczęstszym rozwiązaniem jest wybranie pasującego dialektu.

Czy formatowanie zmienia działanie zapytania?

Zmienia tylko odstępy i, jeśli tak wybierzesz, wielkość słów kluczowych. Literały tekstowe, nazwy w cudzysłowach i liczby zachowują swój tekst, więc 'select' w cudzysłowie pozostaje małymi literami, nawet gdy wybierzesz WIELKIE LITERY.

Czy mogę sformatować kilka instrukcji naraz?

Tak. Instrukcje rozdzielone średnikami są formatowane każda osobno, z pustym wierszem między nimi.

Jakiej wielkości słów kluczowych użyć?

Obie są w porządku; to kwestia stylu, a bazy danych jej nie rozróżniają. Wielkie litery to starsza konwencja i sprawiają, że klauzule wyróżniają się w zwykłym tekście. Małe litery są częste w projektach, które używają lintera lub generują zapytania przez ORM w takim stylu. Opcja Bez zmian zostawia twoją wielkość liter nietkniętą.