Az eszközről
Az SQL-lekérdezések gyorsan hosszúak és összetettek – számos tábla összekapcsolása, beágyazott allekérdezések, nagy WHERE-záradékok sok feltétellel, összetett CASE-kifejezések. A néhány sorba zsúfolt kompakt SQL olvashatatlan; A megfelelően behúzott SQL konzisztens nagybetűkkel egy pillantással láthatóvá teszi a lekérdezés szerkezetét. A formázás a különbség a hibakereshető és a nem tud lekérdezés között.
Ez a formázó elemzi az SQL-t, és behúzott, megfelelő kis- és nagybetűs kimenetet ad ki. Az SQL-kulcsszavak (SELECT, FROM, WHERE, JOIN, GROUP BY) általában nagybetűsek, a tábla- és oszlopnevek megegyeznek a forrással, a behúzás pedig a beágyazást tükrözi (az allekérdezések a szülőkön belül, a CASE ágak behúzva). A több nyelvjárás támogatása kezeli a MySQL, PostgreSQL, SQL Server, Oracle és SQLite különbségeket.
A formázás roncsolásmentes – a formázott lekérdezés funkcionálisan megegyezik a bemenettel. Csak szóköz és kis- és nagybetű változik.
Miért formázza az SQL-t?
A sűrű, formázatlan SQL olvasása mentálisan megterhelő. Nehezebbé válik annak azonosítása, hogy mely feltételek mely JOIN-okhoz tartoznak, hol kezdődnek és végződnek az allekérdezések, és hogyan viszonyulnak a CASE ágak, mindez nehezebbé válik, ha minden csak néhány sorban áll. A formázott SQL gyorsabban olvasható, és csökkenti a félreolvasási szerkezetből eredő hibákat.
A kódellenőrzés különösen előnyös. Az áttekintők gyorsan megérthetik, mit csinál a lekérdezés formázva; a formázatlan SQL olvasása az ellenőrzés során kihagyásra vagy gumibélyegzésre ösztönöz. A formázott SQL is jelentős eltéréseket produkál, amikor a lekérdezések megváltoznak.
Műszaki részletek
Az SQL-elemzés megköveteli a dialektus megértését, mivel a különböző adatbázisok eltérő módon bővítik ki a nyelvtant. A formázó általában tokenizátort használ a kulcsszavak, azonosítók, literálok és írásjelek azonosítására, majd a kimenetet a szóközök és a tokenek közötti behúzások szabályaival állítja elő.
Behúzási szabályok: SELECT, FROM, WHERE, GROUP BY, ORDER BY mindegyik a saját sorában. Egyesített táblázatok a következő sorokban a FROM alatt behúzva. A WHERE feltételek külön sorokban olvashatók. Allekérdezések saját behúzott blokkjaikban.
Kisbetűk konvenciói: a kulcsszavak nagybetűi (SELECT, FROM, WHERE) a leggyakoribbak. Egyes csapatok a kisbetűket részesítik előnyben. Az azonosítók (tábla- és oszlopnevek) megőrzik a forrás kis- és nagybetűjét.
Gyakran ismételt kérdések
- A formázás megváltoztatja a lekérdezés viselkedését?
- Nem. Az SQL formázás csak a szóközt, a sortörést és a kulcsszó kis- és nagybetűjét módosítja. A lekérdezési logika, a végrehajtási terv és az eredmények azonosak maradnak. Ez pusztán az olvashatóság javítása.
- Mely SQL dialektusok támogatottak?
- Az eszköz támogatja a szabványos SQL-t és bizonyos dialektusokat: MySQL, PostgreSQL, SQLite, SQL Server (T-SQL) és Oracle PL/SQL. A nyelvjárásspecifikus kulcsszavakat és függvényeket a rendszer helyesen ismeri fel.
- Kezeli az allekérdezéseket és a CTE-ket?
- Igen. A közös táblakifejezések (a záradékkal), a beágyazott allekérdezések, az ablakfüggvények és az összetett JOIN-láncok megfelelő behúzási szintekkel vannak formázva.
- Használhatom ezt tárolt eljárásokhoz?
- A formázó az egyes SQL utasításokat kezeli a legjobban. A többutasításból álló eljárások, triggerek és függvények működhetnek, de a bonyolult procedurális logikai (IF/ELSE, hurkok) formázása a nyelvjárástól függ.
- A kulcsszavaknak nagybetűknek vagy kisbetűknek kell lenniük?
- A konvenció változó. A nagybetűs kulcsszavak hagyományosak és gyakoriak. A kisbetűk kezdenek elterjedni a modern stíluskalauzokban. Válassz egyet, és maradj következetes a kódbázison belül.
- Formázza a tárolt eljárásokat?
- A legtöbb formázó kezeli a tárolt eljárás szintaxisát (CREATE PROCEDURE, BEGIN/END blokkok, vezérlőfolyamat). A nyelvjárásspecifikus kiterjesztések részben támogatottak lehetnek.
- Fel van töltve az SQL-em?
- Nem. A formázás a böngészőjében történik.
- Formázhatom a parancssorból?
- Számos SQL-formázó kínál CLI-eszközöket (sqlfluff, sql-formatter). Használja őket kötegelt formázáshoz vagy CI-integrációhoz. A böngésző formázói ad hoc egyszeri használatra szolgálnak.