tigtools

SQL Formatter

Illesszen be egy lekérdezést, válassza ki az adatbázisa dialektusát, és kapjon tiszta, következetesen behúzott SQL-t. Semmi sem kerül elküldésre szerverre.

Böngészőben fut Regisztráció nélkül

Behúzás

Használata

  1. Illesszen be egy vagy több SQL utasítást, vagy nyomja meg a „Próbáljon ki egy példát” gombot.
  2. Válassza ki az adatbázisa dialektusát, hogy felismerje a kulcsszavait, idézőjeleit és operátorait.
  3. Á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.
  4. 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.