TextArray
100% helyi

SQL-minifikáló

Tömörítsd az SQL-szkriptet a megjegyzések és a felesleges szóközök eltávolításával.

Bemenet
Kimenet

SQL-minifikáló

Illessz be egy SQL-szkriptet, és az eszköz eltávolítja a megjegyzéseket, majd minden szóközsorozatot összevon, így a lehető legtömörebb, de még futtatható változatot kapod vissza. Tipikus feladatok: egy lekérdezés beágyazása egysoros sztringként az alkalmazás kódjába, egy kézzel írt utasítás összevetése azzal, amit az ORM vagy a lassú lekérdezések naplója ténylegesen előállított, egy hosszú migrációs szkript zsugorítása tárolás előtt, vagy egy lekérdezés bepréselése URL-paraméterbe, JSON-mezőbe.

A szkripten egy kis tokenizáló halad végig karakterről karakterre a vak cserélgetés helyett, ezért a sztringliterálok és az idézett azonosítók sosem módosulnak. Az aposztrófos sztringek a megkettőzött '' escape-pel, az idézőjeles azonosítók és a MySQL-féle backtick nevek bájtról bájtra mennek át — akkor is, ha -- vagy /* van bennük, ami csak megjegyzésnek látszik. A megjegyzések eltávolítása a soros -- és a /* */ blokkokat fedi le, és kikapcsolható. A szoros térköz emellett törli a szóközöket a nyitó zárójel után, a záró előtt és a vesszők körül. Az elrendezés vagy egyetlen sorba teszi az egész szkriptet, vagy minden sztringen kívüli pontosvessző után új sort kezd.

Két őszinte korlát. Az eszköz a formázó ellentéte: nem változtatja a kulcsszavak írásmódját, nem tagol és semmit sem szépít — ha olvasható SQL-re van újra szükséged, futtasd át az eredményt egy formázón. A # jellel kezdődő megjegyzéseket pedig szándékosan békén hagyja, mert az eltávolításuk a T-SQL-ben tönkretenné a #temp táblák neveit.

A minifikálás teljes egészében a böngésződben fut. A lekérdezések gyakran elárulják a táblaneveket, a sémát és az üzleti logikát — ebből semmi sem hagyja el az eszközödet, semmi sem kerül feltöltésre, naplózásra vagy tárolásra. A kimenet alatti összegzés mutatja a bájtokat előtte és utána, a megtakarított százalékot és az utasítások számát.

Gyakori kérdések

Elronthatja a minifikálás a lekérdezésemet?
A sztringliterálok és az idézett azonosítók bájtról bájtra másolódnak, a megjegyzések egészben tűnnek el, a szóközök pedig csak a tokenek között vonódnak össze, így a minifikált szkript egyenértékű marad az eredetivel. Egy kivétel: néhány adatbázis direktívákat olvas a megjegyzésekből, például az Oracle optimalizáló hintjeit — ilyenkor kapcsold ki a megjegyzések eltávolítását.
Miért nem távolítja el a # megjegyzéseket?
Mert a # csak a MySQL-ben kezd megjegyzést. A T-SQL-ben a # és a ## az ideiglenes táblák nevének előtagja, és az eltávolításuk tönkretenné az ilyen szkripteket, ezért az eszköz a # jelet szándékosan békén hagyja. Ha a MySQL # megjegyzéseit el akarod távolítani, írd át őket -- megjegyzésekre.
Mely SQL-dialektusokat támogatja?
A tokenizáló a nagy dialektusok közös idézési szabályait ismeri: aposztrófos sztringek megkettőzött '' escape-pel, idézőjeles azonosítók és MySQL backtickek. Nyelvtant nem elemez, így a PostgreSQL-, MySQL-, SQLite-, SQL Server- és Oracle-szkripteket egyformán kezeli.
Tud az eszköz SQL-t formázni is?
Nem. A minifikálás az ellenkező irány: struktúrát vesz el, nem hozzáad. A kulcsszavak írásmódja marad, ahogy begépelted, és semmi sem kap behúzást — használj SQL-formázót, ha újra olvasható elrendezésre van szükséged.
Feltöltődik valahová az SQL-em?
Nem. Minden helyben, a böngésződben fut. A lekérdezések gyakran felfedik a sémát és az üzleti logikát — pontosan ezért az eszköz soha nem küldi el a bemenetedet egyetlen szerverre sem.