Használata
- Illesszen be egy vagy több SQL utasítást, vagy nyomja meg a „Próbáljon ki egy példát” gombot.
- Válassza ki az adatbázisa dialektusát, hogy felismerje a kulcsszavait, idézőjeleit és operátorait.
- Állítsa be a kulcsszavak kis- és nagybetűjét és a behúzást. A formázott lekérdezés a jobb oldalon jelenik meg, ahogy gépel.
- Nyomja meg a Minify gombot az egysoros verzióért, majd másolja az eredményt, vagy töltse le .sql fájlként.
Hogyan működik
A formázás a nyílt forráskódú sql-formatter könyvtárat használja. A lekérdezést a kiválasztott dialektus szabályai szerint tokenekre bontja, minden fő záradékot (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY…) külön sorba tesz, behúzza az oszloplistákat és feltételeket, és a kulcsszavak megadott kis-/nagybetűzését alkalmazza. Módosítja a szóközöket, és ha kéri, a kulcsszavak betűméretét; az azonosítókat, sztringliterálokat és megjegyzéseket változatlanul hagyja. Fontos a megfelelő dialektus kiválasztása: például a visszafelé idézőjelek MySQL-ben idézik a neveket, SQL Serverben a szögletes zárójelek, PostgreSQL-ben pedig a $$ indítja a függvénytörzset.
A formázó elrendező eszköz, nem adatbázis. Nem ellenőrzi, hogy a táblák vagy oszlopok léteznek-e, és nem érvényesíti a teljes nyelvtant, ezért néhány érvénytelen SQL-t figyelmeztetés nélkül formáz. Ha nem tudja értelmezni a bemenetet, például egy lezáratlan zárójel esetén, a sort és oszlopot jelzi, ahol megállt.
A minifikálás másképp működik: minden tokent megtart, csak a szóközöket vonja össze egyetlen szóközzé, és eltávolítja a megjegyzéseket (az optimalizálói tippeket, például /*+ INDEX(t) */, valamint a MySQL /*! … */ megjegyzéseit megtartja, mert ezek befolyásolják a viselkedést). A sztringeket, idézett azonosítókat és dollárral idézett törzseket változatlanul másolja. Ha egy idézőjel vagy megjegyzés nincs lezárva, a minifikálás hibával áll le, nem tippel.
Példák
Lekérdezés beolvasása naplóból
A lassú lekérdezési napló egyetlen 400 karakteres sort mutat. MySQL dialektussal és nagybetűs kulcsszavakkal áttekinthető blokkká válik, ahol minden JOIN és WHERE feltétel külön sorba kerül, így a hiányzó index könnyen észrevehető.
Egységes stílus a kódellenőrzéshez
Egy csapat minden migrációt PostgreSQL dialektussal, kisbetűs kulcsszavakkal és 4 szóköz behúzással formáz meg a commit előtt, így a diffek csak a valódi változásokat mutatják.
SQL beágyazása kódba
A Minify egy kommentezett, többsoros riportlekérdezést egyetlen sorrá alakít, például: SELECT id, name FROM users WHERE active = 1 ORDER BY name, készen arra, hogy beillessze egy scriptben lévő stringbe.
Gyakori kérdések
Mely adatbázisok támogatottak?
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB és Couchbase N1QL.
Megváltoztatja-e a formázás a lekérdezésem működését?
Nem szabadna: csak a szóközök és, ha kiválasztotta, a kulcsszavak kis- és nagybetűje változik. A kulcsszavak kis- és nagybetűje nem számít SQL-ben. Ennek ellenére ellenőrizze a generált kimenetet, mielőtt éles adatokon futtatná, különösen a szokatlan dialektusfunkciók esetén.
Miért kaptam azt, hogy „nem lehetett formázni”?
A tokenizáló olyasvalamivel találkozott, amit nem tudott elhelyezni, gyakran egy lezáratlan zárójel vagy idézőjel, vagy egy másik dialektus szintaxisa. Ellenőrizze az üzenetben szereplő sort és oszlopot, és győződjön meg arról, hogy a kiválasztott dialektus megfelel az adatbázisának.
Ellenőrzi az SQL-kódomat?
Nem. Nem csatlakozik adatbázishoz, és nem ismeri a sémáját. Egy lekérdezés lehet formázott, és mégis hibát adhat, amikor futtatja.
Adatvédelem
A SQL-kód a böngészőben, JavaScript segítségével formázódik. Nem töltjük fel, nem tároljuk, nem kerül be az elemzésekbe, és az eszköz soha nem csatlakozik adatbázishoz.