Archív rubriky: SQL příkazy

V rubrice SQL Příkazy jsou sdruženy články zaměřené na sql dotazování. Každý článek je věnován nějakému zajímavému SQL příkazu nebo kódu vykonávajícímu nějakou činnost např. jak udělal cyklus (loop), jak udělat hierarchii, CTE apod.

Nejčtenější z kategorie

SQL Hierarchie Díl 2 – Rekurzivní dotaz do parent-child hierarchie

V minulém článku jsem popisoval, jak správně založit do sql tabulky hierarchii se zaměstnanci (viz. článek Jak správně vytvořit parent-child strukturu). Nyní bude řeč o tom, jak se do hierarchií dotazovat a jak s nimi pracovat. Můžete na to jít bláznivými skripty nebo od lesa. Způsob od lesa zahrnuje rekurzivní dotaz. Rekurzivní dotaz na hierarchie… Čtěte více »

SQL # Tempová tabulka – Rozdíl mezi # a ## temp tabulkou

Tempová tabulka s hashtagem # nebo ## je dočasná tabulka, která je uložena v systémové databázi tempdb. Tabulka existuje pouze po dobu, po kterou je otevřena user session ID. Rozeznáváme 2 typy tempových tabulek: Lokální # tempová tabulka – je přístupná pouze v rámci dané session, tzn vidí ji pouze uživatel vykonávající skript Globální ## tempová… Čtěte více »

SQL GO separátor – Vysvětlení příkazu a účelu GO

Možná jste si všimli, že se při generování skriptů v SQL Server používá v syntaxi příkaz nebo lépe řečeno separátor GO. Tento separátor se používá k oddělení dávek v rámci skriptu. Syntaxe, která se nachází v separátoru, je realizována v rámci jednoho exekučního plánu a až poté je realizována další dávka. Příklad na separátor GO… Čtěte více »

SQL ROLLUP, CUBE, GROUPING SETS – Součty a mezisoučty

Co takhle rozšířit si agregační GROUP BY klauzuli o využití užitečných operátorů? GROUP BY používáme v SQL při agregačních operacích a platí, že při jejím použítí dochází k agregaci přes všechny sloupce. Pomocí takto jednoduchého “groupování” ale nejsme schopni udělat součty a mezisoučty (Totals a subtotals). Existuje několik operátorů, pomocí kterých se jednoduše můžeme na Totals dotázat.… Čtěte více »

SQL Server TRY CATCH & Error handling

Příkaz SQL TRY CATCH je navržen pro kontrolu code flow v případě, že nastane chybová situace (Error handling). Tato konstrukce obsahuje 2 bloky s tím, že je zde možné použít také transakci (viz článek o Transakcích). Pokud nastane chyba v prvním bloku – TRY..END , tak je aktivován mechanismus v CATCH..END bloku. Syntaxe SQL Server TRY CATCH BEGIN TRY… Čtěte více »

SQL UNION ALL – Sjednocení dotazů

Operátor UNION ALL v SQL umožnujě provést sjednocení 2 výsledky dotazů s tím, že neodstraní duplicity v dotazech. Operátor vrátí všechny záznamy z obou dotazů bez ohledu na duplicity, které v nich existují. UNION ALL patří do skupiny tzv. SET operators spolu s UNION, EXCEPT, INTERSECT Syntaxe: SELECT Sloupec FROM dbo.Tabulka WHERE Podmínka   UNION ALL SELECT Sloupec FROM dbo.Tabulka WHERE Podmínka… Čtěte více »

SQL IF THEN ELSE příkaz – Neplést s CASE

Příkaz IF se používá ke kontrolování toku kódu hlavně při operacích, kde provádíme nějaké zásahy do db (DDL, DML operace) – třeba procedury. Můžete si ho celkem jednoduše splést s CASE příkazem. Chybou bývá, že se snažíme psát IF do klauzule SELECT, což je chyba. Dotaz kde byste použili IF v příkazu SELECT vám určitě nebude… Čtěte více »

SQL CTE (Common Table Expressions) WITH klauzule

SQL CTE neboli Common table expression je zjednodušeně dočasná tabulka (lépe řečeno result set) v podobě výrazu, po jehož deklarování pomocí klauzule WITH se na něj můžeme odkázat v SELECT, INSERT, DELETE nebo UPDATE skriptu. Syntaxe SQL CTE s WITH WITH Alias_Dotazu AS ( SELECT Sloupec1, Sloupec2 FROM dbo.Tabulka ) SELECT * FROM Alias_Dotazu; Pomocí klauzule WITH… Čtěte více »

SQL CASE WHEN THEN ELSE s příklady

CASE je výraz (expression), který umožňuje aplikovat podmíněnou logiku v sql skritpu. Jde o logiku, kdy na základě podmínky (ve WHEN) vrátí hodnotu definovanou v THEN části. Existují 2 formy Simple CASE Expression (jednoduchá forma) a Searched CASE expression (forma pro vyhledávání). Konstrukce: CASE obsahuje tyto kompomenty – CASE, WHEN, THEN, ELSE, END Začínáme příkazem… Čtěte více »

SQL Logické zpracování dotazu – V jakém pořadí se spouští SQL klauzule?

Pořadí, v jakém se SQL klauzule do dotazu zadávají je všeobecně celkem známé. Pořadí logického SQL zpracování dotazu (logical query processing) je ale jiné než pořadí, v jakém je píšeme do skriptu. Seznam SQL klauzulí v pořadí, jakém po sobě následují v SQL skriptu Klauzule se do SQL dotazu píší v tomto pořadí SELECT, FROM,… Čtěte více »