Archiv štítku: SQL příkazy

SQL 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 TRY CATCH BEGIN TRY BEGIN TRANSACTION… Čti »

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… Čti »

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

T-SQL Příkaz IF se používá ke kontrolování toku kódu hlavně při operacích, kde pvová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 rvát sql IF do klauzule SELECT, což je chyba. Dotaz kde byste použili IF v příkazu SELECT vám… Čti »

SQL CTE WITH klauzule – dotazy a procedury budou přehlednější

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. Pomocí CTE lze provádět (a je to dokonce doporučeno) rekurzivní dotazy v případě, že máme  nad tabulkou nadefinovánu parent – child hierarchii… Čti »

SQL CASE WHEN THEN ELSE s příklady

CASE je výraz (expression), který umožňuje aplikovat IF/THEN logiku v sql skritpu. Jde o podmíněnou 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… Čti »

SQL Zpracování dotazu – V jakém pořadí SQL Server vyhodnocuje 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: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Logicky je SQL… Čti »

SQL OVER() – klauzule pro fajnšmekry

OVER můžeme v SQL zařadit do příkazů pracujících s tzv. Window functions. Tyto typy funkcí nám umožňují na data pohlížet nejen agregovaně (přes GROUP BY), ale můžeme se na funkční operace dívat přes více atributů => vlastně si vytváříme taková okénka a nad těmito ohraničenými daty aplikujeme různé výpočetní operace. Zní to složitě, ale na příkladu později uvidíte, že… Čti »

SQL Cyklus – umíte použít WHILE nebo rekurzivní CTE?

Jako SQL Cyklus můžeme označit opakované volání části kódu s různými parametry a většinou je spojen s nějakou DML operací typu INSERT nebo UPDATE. Cyklus voláme po předem stanovený počet opakování a můžeme ho v SQL sestavit několika různými způsoby. Na příkladu založení tabulky s kalendářem v SQL si ukážeme všechny způsoby. Generování kalendář v… Čti »

SQL INSERT – vkládáme řádky do tabulky

Příkaz SQL INSERT využijem v situaci, kdy potřebujeme vložit záznamy do tabulky. Samotné vložení řádku do tabulky můžeme to udělat několika způsoby. Vkládat záznamy do tabulky můžeme také udělat přes SELECT klauzuli v kombinaci s INTO. Tady se přakticky jedná o kombinaci založení tabulky, tedy CREATE a vložení záznamů definovaných v SELECT klauzuli. Syntaxe SQL INSERT Základní… Čti »