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
- Wejście
- 0
- Wyjście
- 0
- Zmiana
- 0%
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
- Wklej zapytanie do pola albo kliknij Wstaw przykład, aby zobaczyć, jak to działa.
- W polu Dialekt wybierz swoją bazę danych, a potem ustaw wielkość słów kluczowych i rozmiar wcięcia.
- 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ą.