Formátování kódu / Návody

Formátovat nebo zkrátit SQL: co prozradí zápis

Konce řádků ukážou stavbu dotazu. Nepotvrdí však správnou logiku, bezpečnost ani stejné chování ve všech dialektech SQL.

Rozložte dotaz na čitelné části

Příkaz SQL se skládá z klíčových slov, identifikátorů, literálů a operátorů. Mezery a řádky oddělují prvky, interpunkce nese vlastní význam. Formátovač MultiVerto vkládá zlomy před běžné klauzule, takže SELECT name,score FROM results WHERE score>10 ORDER BY score DESC lze snáze prohlédnout. Čtenář zvlášť uvidí vybrané sloupce, tabulku, filtr a pořadí. Kompaktní nástroj naopak omezí nadbytečné mezery a zachová text prvků. Ani jeden dotaz nespustí, nezjistí existenci tabulky results ani neprokáže typ sloupce score. Výstup pomáhá se čtením, ale nedokazuje správnost.

Projděte konkrétní příklad

Hlášení má ukázat řádky se score nad 10, seřazené od nejvyššího. Po úpravě leží SELECT, FROM, WHERE a ORDER BY na oddělených řádcích. Snadněji se zeptáte, zda má podmínka hodnotu 10 vyloučit, nebo zahrnout. Bez ORDER BY může být pořadí vrácených řádků neurčené, jak uvádí SQLite. Kratší dotaz se možná lépe vejde do malého testu, ale nesděluje nic o plánu vykonání ani indexech. Naformátovaný dotaz spusťte v odpovídající databázi, prohlédněte výsledek a porovnejte jej se známým testem. Textový nástroj spuštění nenahradí.

Tři různé kontroly stejného dotazu SQL.
  1. naformátovat čitelné klauzule
  2. zkontrolovat filtr a ORDER BY
  3. spustit test v cílové databázi

Komentáře a řetězce řešte vědomě

SQL řetězce ani citované identifikátory nelze dělit jako obyčejná slova. Řádkový komentář začínající dvěma pomlčkami trvá do konce řádku; neopatrný přesun nebo odstranění zlomu může změnit komentovanou část. Současný formátovač SQL v MultiVerto dotazy s komentáři záměrně odmítá, aby nehádal jejich polohu. Kompaktní nástroj zachová komentáře i hranici řádku, výsledek však přesto prověřte. Dialekty se liší uvozovkami a zvláštní syntaxí řetězců. Malý nástroj v prohlížeči nepokrývá všechna rozšíření. Originál ponechte a konečný text ověřte parserem cílové databáze.

Formátování není bezpečnostní ochrana

Úhledný dotaz může vracet špatné řádky nebo být sestaven nebezpečně. Nespojujte cizí vstup přímo s SQL v představě, že formátování jej ochrání; podle potřeby použijte parametry databázového API. Do veřejného příkladu nevkládejte přihlašovací údaje. Místní editor pracuje v prohlížeči, ale veřejný předvyplněný embed nese vstup ve fragmentu URL přístupném čtenářům. Při změně příkazu kontrolujte podmínky, spojení a limity odděleně od mezer. Kompaktní zápis není šifrování ani ochrana logiky. Zde slouží ke srovnání čitelné a kratší verze.

Prověřte dotaz v cílové databázi

Vezměte kopii krátkého dotazu bez komentářů a použijte formátovač níže. Ověřte zachování řetězců, identifikátorů, operátorů a interpunkce. Pro komentáře nebo zvláštní syntaxi zvolte nástroj daného dialektu či ponechte originál. Dotaz spusťte v bezpečné testovací databázi s reprezentativními řádky včetně mezních score 10 a 11. Před nasazením změny porovnejte údaje, pořadí a výkon. Pokud dotaz poté zkrátíte, otestujte i tuto verzi. Textová úprava pomáhá vidět záměr; skutečné chování určují databáze a data.

Při kontrole výsledku připravte také řádky s hodnotou NULL a se stejným score. Podmínka se znakem > a pořadí při shodných hodnotách mohou mít účinek, který na jediném ukázkovém řádku neuvidíte. Potřebujete-li stabilní pořadí, určete i druhý třídicí klíč v samotném dotazu. Formátovač sice zvýrazní klauzuli ORDER BY novým řádkem, ale nevymyslí za vás, které sloupce ji mají tvořit. Takové rozhodnutí patří k požadavkům aplikace.

Vyzkoušet převodník

Naformátujte krátký dotaz SELECT a ověřte jej v databázi.

Umístěte běžné klauzule SQL na samostatné řádky.

Otevřít celý převodník

Další návody

Návody ke konverzím

Prohlédnout návody