Psaní SQL dotazů
Nejběžnějším typem vnitřní karty je karta dotazu (Záložka dotazu), obsahující následující prvky. Uvedené klávesové zkratky jsou výchozí pro Windows/Linux; na macOS používají vlastní zkratky OmniDB místo Alt klávesu Ctrl. Všechny lze změnit v Nastavení > Klávesové zkratky.

- 1) Hlavička karty: Vidíte zde název karty a po najetí myší ikonu pro její zavření. Dokud na kartě probíhá dotaz, zobrazuje se točící se indikátor; pokud dotaz doběhne ve chvíli, kdy pracujete na jiné kartě, zobrazí se zatržítko. Kliknutím pravým tlačítkem na kartu a volbou Přejmenovat záložku ji můžete přejmenovat.
- 2) Přidat kartu: Rychle můžete přidat další vnitřní kartu (Záložka dotazu nebo Záložka konzole) kliknutím na ikonu plus.
- 3) SQL editor: Plnohodnotný SQL editor se zvýrazňováním syntaxe SQL,
sbalováním kódu, funkcí Najít a nahradit (
Ctrl-FaCtrl-H), svislou čarou pravítka (její sloupec se nastavuje v Nastavení > Formátování) a komponentou automatického doplňování, popsanou níže. Po kliknutí pravým tlačítkem do editoru jsou k dispozici Kopírovat, Uložit jako snippet a Použít snippet (viz Snippety). Úplný seznam klávesových zkratek editoru (výběr, více kurzorů, navigace, sbalování kódu atd.) najdete v kapitole Klávesové zkratky editoru. - 4) Spustit: Text obsažený v SQL editoru se po kliknutí na toto tlačítko (nebo
stisku
Alt-Q) spustí proti aktuálně aktivní databázi. Pokud je v SQL editoru vybraný text, spustí se pouze tento vybraný text. Editor může obsahovat několik příkazů oddělených středníky; provedou se jeden po druhém a mřížka zobrazí výsledek posledního z nich. Jakmile příkaz běží, zobrazí se červené tlačítko Zrušit, které umožňuje spuštění zrušit (nebo stiskněteAlt-C). - 5) Spustit příkaz na pozici kurzoru: Spustí pouze ten jediný příkaz, ve kterém
je kurzor, aniž byste ho museli nejprve vybrat. Je-li kurzor hned za znakem
;, spustí se následující příkaz. - 6) Odsadit SQL: Toto tlačítko zformátuje jakýkoli SQL kód napsaný v SQL
editoru (zkratka
Alt-S) podle stylu zvoleného v Nastavení > Formátování (odsazení, styl čárek, velikost písmen klíčových slov). - 7) Historie příkazů: Všechny příkazy spuštěné proti aktuálnímu připojení se ukládají do historie příkazů, ke které se dostanete kliknutím na toto tlačítko. Můžete ji filtrovat podle rozsahu dat a podle textu, abyste našli potřebný SQL příkaz.
- 8) Explain (pouze PostgreSQL): Spustí váš SQL dotaz s příkazem
EXPLAINna začátku (zkratkaAlt-W). Výsledky se zobrazí v textové i grafické podobě na kartě Explain (podrobnosti naleznete v kapitole Vizualizace plánů dotazů). - 9) Explain Analyze (pouze PostgreSQL): Stejné jako tlačítko Explain, ale
dotaz se spustí s příkazem
EXPLAIN (ANALYZE, BUFFERS), který dotaz skutečně provede (zkratkaAlt-E). - 10) Automatické potvrzování (pouze PostgreSQL): Když je zapnuto, každý spuštěný dotaz se ihned potvrdí (commit) do databáze. Když je vypnuto, OmniDB zahájí transakci a po spuštění dotazu se v rozhraní zobrazí tlačítka Potvrdit (Commit) a Vrátit zpět (Rollback). Uživatel může transakci také ponechat otevřenou a spouštět další příkazy.
- 11) Stav backendu (pouze PostgreSQL): Když otevřete novou kartu dotazu, stav je Nepřipojeno, protože OmniDB ještě nespustila backend PostgreSQL. Když spustíte první dotaz, OmniDB spustí nový backend a propojí ho s kartou dotazu (každá karta dotazu dostane vlastní backend). Stav backendu (Nečinné, Probíhá, Nečinné v transakci atd.) se zobrazí v tomto poli. Když kartu dotazu zavřete, OmniDB backend ukončí.
- 12) Formát exportního souboru: CSV, TSV, XLSX, JSON, XML nebo Markdown.
- 13) Exportovat data: Kliknutím na toto tlačítko OmniDB spustí aktuální dotaz a exportuje celý výsledek do souboru zvoleného typu. V desktopové aplikaci se otevře nativní dialog Uložit jako, ve kterém rovnou zvolíte, kam soubor uložit, a OmniDB to potvrdí zprávou Soubor exportován do: …. Při běhu jako prohlížečový OmniDB Server se soubor nejprve uloží do dočasné složky na serveru a oblast výsledků pak zobrazí Soubor je připraven. s odkazem Uložit, pomocí kterého ho stáhnete přes prohlížeč. Kódování CSV/TSV a oddělovač CSV se nastavují v Nastavení > Export.
- 14) Výsledky dat: Pokud je dotaz typu
SELECT, zobrazí se mřížka s výsledky; první sloupec zůstává při vodorovném posouvání ukotvený a po najetí myší na záhlaví sloupce se zobrazí jeho celý název. Pokud jde o příkaz DML nebo DDL, zobrazí se zpráva vrácená databázovým systémem. Když je řádků více než v první dávce, Načíst více načte další dávku a Načíst vše zbytek. Po kliknutí pravým tlačítkem na buňku máte k dispozici Kopírovat nebo Zobrazit obsah; hodnoty JSON a XML se zobrazují se zvýrazněnou syntaxí. - 15) Zprávy (pouze PostgreSQL): Zde se zobrazí veškeré zprávy (například
ty vydané příkazem
RAISE NOTICE). - 16) Zobrazení Explain (pouze PostgreSQL): Zobrazuje plnohodnotnou komponentu pro prohlížení prováděcího plánu PostgreSQL v textové nebo grafické podobě.
Dělicí čáru mezi editorem (s jeho panelem nástrojů) a výsledky lze přetáhnout a dát tak více místa jednomu či druhému.
Bezpečnostní potvrzení u destruktivních příkazů
Před spuštěním příkazu, který začíná na DROP nebo TRUNCATE, nebo
příkazu UPDATE/DELETE bez klauzule WHERE si karta dotazu
vyžádá potvrzení (Tento příkaz je destruktivní a nelze jej vrátit zpět. Přesto jej
spustit?, nebo Tento příkaz nemá klauzuli WHERE a ovlivní VŠECHNY řádky. Přesto jej
spustit?). Jde o pojistku proti nechtěným chybám, ne o systém oprávnění — kontroluje se jen
začátek textu (za komentáři).
Po spuštění se karty ukládají také do uživatelské databáze OmniDB (název i obsah), takže při příštím otevření OmniDB je uvidíte všechny znovu otevřené. Každý příkaz, který spustíte na kartě dotazu, se navíc ukládá do historie příkazů daného připojení.
Automatické doplňování SQL
SQL editor má funkci, která velmi pomáhá při psaní nových dotazů: doplňování SQL kódu. Návrhy
otevřete klávesami Ctrl-Space (Option-Space na macOS). Díky této funkci
je možné doplňovat sloupce obsažené v tabulce, na kterou odkazuje alias: napište alias, znak
. a poté otevřete automatické doplňování:

Pokud uživatel spustí automatické doplňování s kurzorem, který není blízko aliasu tabulky, komponenta zobrazí více kategorií dat. Psaním do filtračního textového pole se prvky ve všech kategoriích filtrují:

Komponenta automatického doplňování dokáže rozpoznat i některé kontextové informace. Pokud
například napíšete název schématu a poté znak ., budete moci filtrovat pouze mezi
objekty obsaženými v daném schématu:

Za :: (přetypování v PostgreSQL) se nabízejí jen datové typy. Výběr klíčového slova
přidá i to, co za ním vždy následuje (například mezeru za SELECT nebo otevírací
závorku za COALESCE). Které kategorie se vůbec nabízejí (klíčová slova, databáze, role,
tablespace, schémata, rozšíření, tabulky, pohledy, sloupce, funkce, indexy), se nastavuje
v Nastavení > Automatické doplňování.
Upozorňujeme, že u jiných databázových systémů než PostgreSQL funguje automatické doplňování pouze pro sloupce tabulek.