602SQL-Úplná dokumentace Index  

Návrhář dotazů

Návrh dotazu

Dotazy jsou nástrojem, který dovede z jedné nebo více tabulek vybrat data podle zadaných podmínek, seskupit a vypočítat agregované hodnoty a výsledné záznamy vhodně uspořádat. Jako odpověď na dotaz vznikne fiktivní tabulka (kurzor), se kterou lze pracovat podobně jako s tabulkou, např. otevřít jej do gridu, exportovat data apod.

Více o dotazech naleznete v části nápovědy věnované jazyku SQL.

Definice pevných dotazů jsou uloženy v databázi (na rozdíl od dotazů proměnných, vytvořených až za běhu klientského programu API funkcí Open_cursor_direct). Mezistupeň mezi dotazy pevnými a proměnnými tvoří tzv. dotazy dynamické - jedná se o pevné dotazy, které mají v určitém místě definice odkaz na hodnotu proměnné klientského jazyka. Pevné a dynamické dotazy se tvoří návrhářem dotazů, proměnné dotazy je rozumné v návrháři předem vyzkoušet.

Návrhář dotazů

Dotazy, jejichž definice je (nebo má být) uložena v databázi, se tvoří a modifikují v prostředí interaktivního návrháře dotazů. Do návrháře se lze dostat tak, že na Řídicím panelu vyberete Dotazy a provedete akci z popup menu Modifikovat resp. Vytvořit. Ti uživatelé, kterým připadá jednodušší psát definici dotazu přímo v textové podobě (tj. zapsat příkaz SELECT z SQL), použijí akci Editovat zdrojový text resp. Nový dotaz v SQL. Mezi textovou a interaktivní podobou návrháře je možné v průběhu práce přepínat. Je-li návrh dotazu uložen s chybou nebo je-li příliš složitý pro analýzu do stromu, otevře se pouze textový editor.

Okno návrháře dotazů se skládá ze tří částí, pracovně nazvané strom, tabulky a grid:

Pomocná okna

Kromě tří základních částí návrhář disponuje ještě několika pomocnými okny. Při výběru tabulky do části FROM dotazu se otevře okno Přidat tabulku, které nabízí nejen seznam tabulek, ale i seznam dotazů, systémových tabulek a systémových dotazů. Všechny tyto objekty jsou z hlediska dotazu rovnocenné.

Okno Lexikální elementy nabízí operátory, predikáty a další součásti SQL výrazů. Chcete-li je použít, pomocí Drag&Drop je přetáhněte do části grid.

Okno Vlastnosti návrháře dotazů slouží k úpravě chování návrháře podle potřeb uživatele. Záložka Formát příkazu určuje, jak se definice dotazu (SELECT) bude rozlamovat do řádek, záložka Parametry definuje zvláště prefixy před jména sloupců a tabulek.

Práce s návrhářem

Návrhář dotazů je poměrně složitá a velmi obecná utilita, k jejímuž plnému využití je potřeba delší praxe a také dobrá znalost SQL dotazů v 602SQL serveru. Tuto praxi nemůže nahradit tento návod - nejlepší cestou ke zvládnutí je modifikovat některé testovací dotazy nebo vytvářet samostatně dotazy nové od nejjednodušších - např. podle tutoriálu umístěného zde.

Základní postupy při návrhu dotazů jsou ukázány na následující stránce.

Význam některých příkazů

Pro každý prvek stromu existuje kontextové popup menu obsahující příkazy, které je možné na této úrovni volat.

Návrh dotazu: Kořenový prvek návrhu obsahuje tyto příkazy: Přidat ORDER BY: na konec návrhu přidá klauzuli ORDER BY (nelze použít na jiném místě, např. v subdotazu); Přidat LIMIT: na konec návrhu přidá klauzuli LIMIT (návrhář neumožňuje vkládání LIMIT do subdotazů, i když v některých případech (např. v části WHERE) to má smysl); Přidat dotaz: vloží do návrhu další dotaz na stejnou úroveň jako je dotaz základní a umožní zvolit množinový vztah (UNION, INTERSECT nebo EXCEPT) mezi těmito dotazy - POZOR: není to subdotaz!

SELECT: obsahuje pouze jediný příkaz Přidat subdotaz: jako jeden sloupec lze vložit subdotaz (musí mít jeden sloupec a jeden řádek).

FROM: na místě zdroje dat pro dotaz může být jak obyčejná tabulka nebo pevný dotaz (příkaz Přidat tabulku), tak subdotaz tvořený jedním dotazem (tj. dotaz ohraničený kulatými závorkami, příkaz Přidat subdotaz) nebo více dotazy spojenými množinově (UNION apod. - příkaz Přidat spojený subdotaz) a nakonec také spojení (JOIN) dvou tabulek (příkaz Přidat JOIN)

WHERE: příkazem Přidat subdotaz vložíte do WHERE klauzule subdotaz, který ale obvykle sám netvoří podmínku - tu je třeba dopsat k subdotazu v části grid ve sloupci Výraz.

Seznam subsekcí: