SQL formatter bierze gęsty, jednolinijkowy lub wygenerowany automatycznie kod SQL i przepisuje go ze spójnymi wcięciami i podziałami linii. Programiści i analitycy sięgają po niego przy przeglądaniu złączeń, debugowaniu filtrów, porządkowaniu wyniku z ORM, udostępnianiu zapytań w zgłoszeniach lub dokumentacji i analizie planów zapytań.
Formatowanie nie zmienia tego, co zapytanie *robi*, tylko to, jak łatwo człowiek je przeczyta. Gdy układ jest spójny, relacje między SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING i ORDER BY dużo łatwiej prześledzić, zwłaszcza w zapytaniach łączących podzapytania i CTE.
SQL ma wiele *dialektów*: PostgreSQL, MySQL, SQLite, T-SQL (Microsoft SQL Server), Oracle i BigQuery rozszerzają standard o własną składnię. Dobry formatter rozumie wybrany dialekt, więc nie psuje składni specyficznej dla danej bazy.
Czego nauczysz się, formatując SQL
Klauzule SQL mają konkretne role: SELECT wybiera kolumny, FROM wybiera tabele, WHERE filtruje wiersze, GROUP BY agreguje, a ORDER BY sortuje.
Czytelne wcięcia odsłaniają zagnieżdżone zapytania, złączenia i warunki, których w jednolinijkowym zapytaniu w ogóle nie widać.
Dialekt ma znaczenie: RETURNING, LIMIT, TOP i identyfikatory w nawiasach ([col] kontra "col") nie są przenośne między bazami danych.
Dobre formattery zachowują komentarze, więc możesz wyjaśnić, *dlaczego* dany filtr istnieje, tuż obok niego.
Jak sformatować zapytanie SQL krok po kroku
1
Wklej zapytanie
Wklej swój SQL do pola wejściowego. Zadziała SQL jednolinijkowy, wygenerowany przez ORM albo częściowo sformatowany.
2
Wybierz dialekt
Wybierz PostgreSQL, MySQL, SQLite lub T-SQL, aby formatter uwzględnił słowa kluczowe specyficzne dla bazy, takie jak LIMIT, TOP czy RETURNING.
3
Ustaw styl
Wybierz wielkość liter słów kluczowych (standardem są wielkie litery) i szerokość wcięcia (2 lub 4 spacje). Większość zespołów wybiera wielkie litery i wcięcie na 2 spacje.
4
Przeczytaj sformatowany wynik
Każda klauzula jest w osobnej linii, złączenia są wyrównane, a podzapytania mają wcięcia. Komentarze zostają zachowane.
5
Skopiuj z powrotem do projektu
Wklej sformatowane zapytanie do migracji, surowego zapytania ORM lub narzędzia BI. Wszystko zostaje w twojej przeglądarce.
Klauzule SQL: szybka ściągawka
Klauzule, które zobaczysz w 95% zapytań SELECT, w kolejności, w jakiej są koncepcyjnie przetwarzane. Dokumentacja baz: PostgreSQL SELECT, MySQL SELECT.
Klauzula
Cel
Przykład
SELECT
Wybiera kolumny lub wyrażenia do zwrócenia
SELECT id, name
FROM
Wybiera tabele źródłowe
FROM users
JOIN ... ON
Łączy wiersze z inną tabelą
JOIN orders ON orders.user_id = users.id
WHERE
Filtruje wiersze przed grupowaniem
WHERE active = true
GROUP BY
Agreguje wiersze o wspólnych wartościach
GROUP BY country
HAVING
Filtruje zagregowane grupy
HAVING COUNT(*) > 10
ORDER BY
Sortuje wynik
ORDER BY created_at DESC
LIMIT / OFFSET
Dzieli wynik na strony
LIMIT 20 OFFSET 40
WITH ... AS
Common Table Expression (CTE): nazwane podzapytanie
WITH active AS (...)
Przykłady SQL do wypróbowania
Sformatuj proste zapytanie
Wejście
select id,name from users where active=trueorderby created_at desclimit10
Sformatowane
SELECT id, nameFROM usersWHERE active =trueORDERBY created_at DESCLIMIT10;
Każda klauzula jest teraz w osobnej linii, a lista kolumn ma wcięcie. Przegląd tego zapytania w code review stał się 10× łatwiejszy.
Przeanalizuj złączenie
Wejście
select u.name,o.total from users u join orders o on o.user_id=u.id where o.total>100
Sformatowane
SELECT u.name, o.totalFROM users uJOIN orders o ON o.user_id = u.idWHERE o.total >100;
Aliasy tabel (users u, orders o) skracają listę kolumn. Linia JOIN ... ON wprost pokazuje relację między tabelami.
Przeczytaj zagnieżdżone podzapytanie
Wejście
select*from users where id in(select user_id from enrollments where course_id=5)
Sformatowane
SELECT*FROM usersWHERE id IN(SELECT user_idFROM enrollmentsWHERE course_id =5);
Wcięcie wewnętrznego zapytania wyraźnie pokazuje zależność. Gdy struktura jest widoczna, wiele podzapytań da się przepisać na JOINy lub CTE.
ORM-y takie jak Prisma, Django czy ActiveRecord logują SQL jako jedną długą linię. Beautifier dzieli ją na klauzule i robi wcięcia w łańcuchu warunków WHERE, żeby dało się przeczytać, co robi zapytanie, zanim wkleisz je do zgłoszenia.
Częste błędy przy formatowaniu SQL
Zakładanie, że sformatowany SQL to *poprawny* SQL. Formatowanie zmienia układ, a nie znaczenie: zapytanie może wyglądać czysto i nadal zwracać zły wynik.
Edytowanie zapytania podczas formatowania i zapominanie o ponownym przetestowaniu wyniku.
Ignorowanie dialektu: LIMIT 10 w PostgreSQL, TOP 10 w T-SQL i FETCH FIRST 10 ROWS ONLY w standardowym SQL robią to samo.
Mieszanie wielkości liter słów kluczowych (Select, SELECT, select) w jednym projekcie. Wybierz jeden styl i trzymaj się go: większość zespołów używa wielkich liter.
SQL Formatter: najczęstsze pytania
Czy formatowanie SQL zmienia wynik zapytania?
Nie. Formatowanie zmienia tylko białe znaki i wielkość liter. Baza danych przetwarza obie wersje do tego samego planu zapytania, więc zwrócone wiersze są identyczne.
Po co formatować SQL?
Czytelny SQL łatwiej debugować, przeglądać w code review, uczyć i utrzymywać, zwłaszcza gdy zapytanie ma wiele złączeń, podzapytań, CTE lub funkcji okna.
Co to jest dialekt SQL?
Dialekt SQL to rozszerzenie standardowego SQL specyficzne dla danej bazy danych. PostgreSQL, MySQL, SQLite, T-SQL (SQL Server), Oracle i BigQuery mają własną składnię wykraczającą poza standard SQL.
Czy SQL formatter naprawi błędne zapytanie?
Formatter może ujawnić problemy ze składnią, bo wypisuje zapytanie w uporządkowanej formie, ale nie rozumie twojego schematu i nie zagwarantuje, że zapytanie jest logicznie poprawne.
Czy pisać słowa kluczowe SQL wielkimi literami?
Większość przewodników stylu zaleca wielkie litery dla słów kluczowych (SELECT, FROM, WHERE) i małe dla identyfikatorów, bo kontrast wizualny wyraźnie pokazuje strukturę zapytania. Wybierz jeden styl i trzymaj się go.
Czym różni się SQL formatter od SQL beautifier?
To dwie nazwy tego samego narzędzia. "Beautify" i "format" oznaczają przepisanie zapytania ze spójnymi wcięciami, podziałami linii i wielkością liter słów kluczowych, żeby łatwiej się je czytało. Niezależnie od tego, czy szukasz SQL beautifier, SQL pretty printer czy SQL formatter, to narzędzie zrobi swoje: wklej zapytanie, wybierz dialekt i skopiuj czystą wersję.
Jak za darmo sformatować zapytanie SQL online?
Wklej zapytanie do pola wejściowego, wybierz dialekt (PostgreSQL, MySQL, SQLite lub T-SQL), a formatter od razu doda wcięcia i umieści każdą klauzulę w osobnej linii. Narzędzie jest całkowicie darmowe, bez rejestracji, i działa w całości w przeglądarce: twój SQL nigdy nie jest wysyłany na serwer, więc możesz bezpiecznie formatować zapytania firmowe lub produkcyjne.