Formatowanie SQL
Nadaj zapytaniu SQL wcięcia, żeby dało się je przeczytać, w całości w twojej przeglądarce. Nic nie jest wykonywane i żadna baza danych nie jest odpytywana.
Działa w całości w twojej przeglądarce. Nic nie jest wysyłane, logowane ani przechowywane.
Wklej zapytanie, które przyszło jako jeden długi wiersz, i przeczytaj je porządnie. Formatowanie odbywa się w twojej przeglądarce: instrukcja, nazwy tabel i wartość w klauzuli WHERE nigdy nie opuszczają twojego komputera.
Jak to działa
Instrukcja jest dzielona na kawałki — łańcuchy, komentarze, nazwy w cudzysłowach, liczby, słowa, operatory — a potem zapisywana od nowa z podziałami wierszy i wcięciami dobranymi na podstawie tej sekwencji. Klauzule zaczynają się od nowego wiersza, warunki są wyrównywane pod klauzulą, do której należą, a podzapytanie dostaje wcięcie wewnątrz swoich nawiasów.
Każdy kawałek jest zapisywany dokładnie tak, jak przyszedł. Zmienić mogą się tylko odstępy między nimi i wielkość liter słów, które narzędzie rozpoznaje, co oznacza, że instrukcja na wyjściu jest tą samą instrukcją co na wejściu. Tę właściwość potwierdzają testy, zamiast zostawiać ją do sprawdzenia na oko.
Nawias zawierający własną instrukcję jest rozbijany na kilka wierszy; wywołanie funkcji, lista IN albo nawias, który tylko grupuje wyrażenie, zostają w jednym wierszu, bo ich rozbicie wydłuża zapytanie, nie czyniąc go czytelniejszym.
Przykłady
| Przypadek | Dane wejściowe | Wynik |
|---|---|---|
| Zapytanie w jednej linii | select id, name from users where active = 1 order by name | SELECT id, name FROM users WHERE active = 1 ORDER BY name |
Najczęściej zadawane pytania
Czy moje zapytanie jest gdzieś wysyłane?
Nie. Formatter to JavaScript działający na tej stronie. Nic nie jest przesyłane, rejestrowane ani przechowywane: możesz odłączyć sieć, a narzędzie dalej będzie działać.
Czy sprawdza, czy mój SQL jest poprawny?
Nie, i warto to jasno powiedzieć. Jego praca polega na przestawianiu białych znaków. Nie ma schematu, gramatyki dialektu ani bazy danych, więc z zadowoleniem nada wcięcia instrukcji, której nie przyjąłby żaden serwer. Odrzuca tylko niezamknięty łańcuch albo komentarz, bo wtedy nie potrafi odróżnić kodu od tekstu.
Jaki dialekt rozumie?
Rozpoznaje style cudzysłowów najpopularniejszych dialektów — apostrofy dla łańcuchów oraz cudzysłowy, grawisy lub nawiasy kwadratowe dla nazw — więc nie zniszczy MySQL, PostgreSQL, SQLite ani SQL Servera. Nie sprawdza gramatyki dialektu, bo nie przeprowadza analizy składniowej.
Do czego służy opcja ukośników wstecznych?
MySQL traktuje ukośnik wsteczny wewnątrz łańcucha jako znak ucieczki, więc 'it\'s' to jeden łańcuch. Standardowy SQL — oraz PostgreSQL, SQLite, SQL Server i Oracle — tak nie robi, więc tam ten sam tekst to łańcuch, po którym następuje coś innego. Nie da się tego rozpoznać z samego zapytania, a zgadywanie zepsułoby jeden albo drugi dialekt, dlatego jest to przełącznik. Zostaw go wyłączonego, chyba że pracujesz z MySQL.
Dlaczego zmieniła się wielkość liter w nazwie mojej kolumny?
Bo zapisuje się ją tak samo jak słowo kluczowe. Opcja wielkości liter zmienia słowa, które narzędzie rozpoznaje, i nie potrafi odróżnić kolumny o nazwie „key” od słowa kluczowego. Nazwy stojące bezpośrednio po TABLE, INTO, FROM, JOIN lub UPDATE są zostawiane bez zmian, bo to są pozycje, w których wielkość liter nazwy może mieć znaczenie. Jeśli wolisz, żeby nic się nie ruszało, ustaw opcję słów kluczowych na pozostawienie ich tak, jak zapisano, albo ujmij nazwę w cudzysłów.
Warto wiedzieć
- Nic na tej stronie nie wykonuje SQL ani nie łączy się z bazą danych. Instrukcja to tekst i jest traktowana jak tekst.
- Układ jest deterministyczny: ta sama instrukcja z tymi samymi opcjami zawsze daje ten sam wynik, a sformatowanie już sformatowanej instrukcji niczego nie zmienia.
- Wyrażenia CASE, złączenia, podzapytania i listy kolumn w CREATE TABLE mają każde swoją regułę. Wszystko, czego reguły nie obejmują, zostaje w wierszu, w którym wypada, zamiast być zgadywane.
Wszystkie narzędzia z kategorii Kod