Formátovanie kódu / Návody

Formátovať alebo skrátiť SQL: čo prezradí zápis

Zlomy riadkov odkryjú stavbu dopytu. Nepotvrdia však správnu logiku, bezpečnosť ani rovnaké správanie v každom dialekte SQL.

Rozložte dopyt na čitateľné časti

Príkaz SQL sa skladá z kľúčových slov, identifikátorov, literálov a operátorov. Medzery a riadky oddeľujú prvky, interpunkcia má vlastný význam. Formátovač MultiVerto vkladá zlomy pred bežné klauzuly, takže SELECT name,score FROM results WHERE score>10 ORDER BY score DESC sa ľahšie kontroluje. Čitateľ osobitne vidí vybrané stĺpce, tabuľku, filter a poradie. Kompaktný nástroj naopak zmenší nadbytočné medzery a ponechá text prvkov. Ani jeden dopyt nespustí, nezistí existenciu tabuľky results a nedokáže typ stĺpca score. Výstup je pomôcka na čítanie, nie potvrdenie správnosti.

Prejdite konkrétny príklad

Hlásenie má ukázať riadky so score nad 10, zoradené od najvyššieho. Po formátovaní ležia SELECT, FROM, WHERE a ORDER BY na oddelených riadkoch. Môžete sa spýtať, či podmienka má číslo 10 vylúčiť alebo zahrnúť. Bez ORDER BY môže byť poradie vrátených riadkov neurčené, ako vysvetľuje SQLite. Kompaktný dopyt možno zaberie menej miesta v testovacom súbore, no nehovorí nič o pláne vykonania ani indexoch. Naformátovaný dopyt spustite v správnej databáze, pozrite výsledok a porovnajte ho so známym testom. Textový formátovač takú skúšku nenahrádza.

Tri odlišné kontroly toho istého dopytu SQL.
  1. naformátovať čitateľné klauzuly
  2. skontrolovať filter a ORDER BY
  3. spustiť skúšku v cieľovej databáze

Komentáre a reťazce riešte vedome

Reťazce SQL ani citované identifikátory nemožno deliť ako obyčajné slová. Riadkový komentár začínajúci dvoma pomlčkami siaha po koniec riadka; neopatrný presun alebo vymazanie zlomu môže zmeniť komentovanú časť. Súčasný formátovač SQL v MultiVerto dopyty s komentármi úmyselne odmieta, aby nehádal ich umiestnenie. Kompaktný nástroj zachová komentáre a hranicu riadka, no výsledok stále skontrolujte. Dialekty sa líšia úvodzovkami a osobitnou syntaxou reťazcov. Malý prehliadačový nástroj nesľubuje podporu všetkých rozšírení. Originál si ponechajte a konečnú verziu overte parserom cieľovej databázy.

Formátovanie nie je bezpečnostná ochrana

Pekne upravený dopyt môže vracať nesprávne riadky alebo byť zostavený nebezpečne. Nevkladajte cudzí vstup priamym spájaním do SQL v domnienke, že formátovanie ho ochráni; podľa potreby použite parametre databázového API. Do verejného príkladu nedávajte prihlasovacie údaje. Lokálny editor pracuje v prehliadači, ale verejný predvyplnený embed nesie vstup vo fragmente URL prístupnom čitateľom. Pri zmene príkazu kontrolujte podmienky, spojenia a limity nezávisle od medzier. Kompaktný zápis nie je šifrovanie ani ochrana logiky. Tu pomáha porovnať čitateľný a kratší variant.

Overte dopyt v cieľovej databáze

Vezmite kópiu krátkeho dopytu bez komentárov a skúste formátovač nižšie. Skontrolujte zachovanie reťazcov, identifikátorov, operátorov a interpunkcie. Pri komentároch alebo špeciálnej syntaxi použite nástroj pre daný dialekt alebo ponechajte originál. Dopyt spustite v bezpečnej testovacej databáze s reprezentatívnymi riadkami vrátane hraníc score 10 a 11. Porovnajte výsledné údaje, poradie a výkon pred nasadením zmeny. Ak dopyt neskôr skrátite, otestujte aj tento výstup. Textová úprava pomáha vidieť zámer; skutočné správanie určujú databáza a dáta.

Pri kontrole výsledku si pripravte aj riadky s hodnotou NULL a s rovnakým score. Podmienka so znakom > a poradie pri zhodných hodnotách môžu mať účinok, ktorý pri jednej ukážkovej položke neuvidíte. Ak potrebujete stabilné poradie, rozhodnite aj o druhom triediacom kľúči v samotnom dopyte. Formátovač síce zvýrazní klauzulu ORDER BY novým riadkom, ale nevymyslí za vás, ktoré stĺpce ju majú tvoriť. Také rozhodnutie patrí k požiadavke aplikácie.

Vyskúšať konvertor

Naformátujte krátky dopyt SELECT a overte ho v databáze.

Umiestnite bežné klauzuly SQL na samostatné riadky.

Otvoriť celý konvertor

Ďalšie návody

Návody na konverzie

Prezrieť návody