Jak sformatować zapytanie SQL?
- 1.
Wklej zapytanie
Wklej SQL w lewe pole, otwórz plik .sql lub wstaw przykład.
- 2.
Wybierz dialekt
Ustaw bazę danych (np. PostgreSQL, MySQL, SQL Server), żeby parser poprawnie rozpoznał składnię specyficzną dla niej.
- 3.
Dobierz styl
Wybierz wielkość liter słów kluczowych (WIELKIE, małe, bez zmian) i wcięcie: 2 spacje, 4 spacje lub tabulator.
- 4.
Skopiuj wynik
Sformatowane zapytanie pojawia się od razu po prawej - skopiuj je lub pobierz jako plik .sql.
Jak wygląda dobrze sformatowany SQL?
Czytelne zapytanie ma każdą główną klauzulę w nowej linii (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY), kolumny i warunki wcięte o stałą liczbę spacji, a słowa kluczowe pisane jednolicie - najczęściej wielkimi literami. Przykład:
select id,name from users where active=1 and city='Kraków' order by namepo sformatowaniu:
SELECT
id,
name
FROM
users
WHERE
active = 1
AND city = 'Kraków'
ORDER BY
nameFormatowanie nie zmienia działania zapytania - zmienia tylko białe znaki i wielkość liter słów kluczowych. Teksty w apostrofach i nazwy w cudzysłowach pozostają nietknięte.
Obsługiwane dialekty SQL
| Baza danych | Przykładowa składnia rozpoznawana tylko w tym dialekcie |
|---|---|
| PostgreSQL | $$…$$, ::int, RETURNING, ILIKE |
| MySQL / MariaDB | `nazwa`, komentarz #, LIMIT 10, 20 |
| SQL Server (T-SQL) | [Order Details], TOP 10, GO |
| Oracle (PL/SQL) | CONNECT BY, :zmienna, bloki BEGIN … END; |
| SQLite, BigQuery, Snowflake, Redshift, Db2, DuckDB, ClickHouse, Trino, Spark, Hive | własne funkcje i typy danych |
Tryb Standard SQL obsługuje składnię ANSI. Jeśli zapytanie zawiera konstrukcje konkretnej bazy, a formatowanie zgłasza błąd, wybierz właściwy dialekt.
Minifikacja SQL - kiedy się przydaje?
Minifikacja zapisuje zapytanie w jednej linii bez zbędnych spacji - przydaje się przy wklejaniu SQL do kodu jako tekstu, do plików konfiguracyjnych, logów lub parametrów w narzędziach CI. Narzędzie:
- zamienia wszystkie ciągi białych znaków na jedną spację i usuwa spacje przy
, ( ) ;, - nie zmienia zawartości tekstów w apostrofach, identyfikatorów w cudzysłowach, bloków
$$…$$ani[nazw]z T-SQL, - usuwa komentarze albo - gdy wyłączysz tę opcję - zamienia komentarze
--na/* … */, żeby nie „zakomentowały” reszty zapytania w jednej linii, - zawsze zostawia wskazówki optymalizatora
/*+ … */(Oracle, MySQL) i/*! … */(MySQL).
Najczęstsze przyczyny błędu formatowania
- Niezamknięty apostrof - np.
WHERE name = 'O'Brien'. Apostrof w tekście zapisuje się podwójnie:'O''Brien'. - Składnia innej bazy -
[kolumna]działa w SQL Server, a`kolumna`w MySQL; w trybie Standard SQL mogą zostać odrzucone. - Zmienne szablonów - wstawki typu
{{ var }}czy${id}nie są SQL-em; zastąp je na czas formatowania np. wartością1. - Niekompletny fragment - samo
AND x = 1bez początku zapytania bywa nierozpoznawalne.
Przy błędzie narzędzie podaje numer linii i kolumny oraz pokazuje fragment kodu ze znacznikiem ^. Do formatowania danych zwracanych przez API użyj formatera JSON.
Najczęściej zadawane pytania
Czy moje zapytania SQL są wysyłane na serwer?
+
Czy formatowanie zmienia działanie zapytania?
+
Słowa kluczowe SQL pisać wielkimi czy małymi literami?
+
Jaki dialekt wybrać dla SQL Server?
+
Dlaczego dostaję błąd, choć zapytanie działa w bazie?
+
Czy można sformatować kilka zapytań naraz?
+
Aktualizacja: