Category Archives: SQL tutorial

Sekce SQL tutorial

T-SQL je jazyk, který se používá k manipulaci s databází na platformě MS SQL Server. V této sekci, která je takovým archivem tutoriálů naleznete řadu článků na tématiku TSQL. Pokud se chcete SQL naučit nebo si chcete jen připomenout jak nějaká SQL funkce funguje, koukněte na příslušný SQL tutorial. Snažím se o to, aby každý článek obsahoval i příklad použítí a ukázku kódu.

SQL BETWEEN operátor – Definujeme rozsah v podmínce

Tento operátor používáme v SQL když potřebujeme ověřit, jestli určitá hodnota patří do nějakého rozsahu. Tento operátor se používá spolu s „AND“ příkazem, kterým definujeme daný rozsah. Operátor můžeme použít ve většině klauzulí, ale nejčastěji se s ním setkáme ve WHERE při stanovení omezující podmínky. Syntaxe : SELECT Datum FROM dbo.Tabulka WHERE Datum BETWEEN ‚1900-01-01‘ and ‚2050-12-31‘ Podmínku… Read More »

SQL Transakce COMMIT ROLLBACK – předcházejte průšvihům

Jako transakci označujeme v SQL logickou množinu nebo sekvence operací, která je do této transakce patří. SQL Transakce můžeme použít pokud nad databázemi provádíme nějaké změny. Všechny prováděné změny jsou poté do této transakce zahrnuty. Můžeme je rozdělit na systémové a uživatelské transakce. Výhodou používání transakcí je to, že provedené změny jsou odvolatelné a transakci musíme… Read More »

SQL COUNT funkce – jak si spočítat řádky v tabulce?

Funkce sql COUNT patří do Agregačních funkcí  a je to jedna z nejjednodušších a nejpoužívanějších funkcí v SQL. Umožňuje spočítat řádky v určitém sloupci nebo řádky v celé tabulce. (!!!) Pokud počítáme pomocí sql COUNT počet záznamů nad určitým sloupcem, jsou NULL záznamy vynechány. Syntaxe SQL COUNT funkce: 1 Počet řádků v celé tabulce: SELECT COUNT(*)… Read More »

SQL EXISTS operátor – Test existence

EXISTS je T-SQL operátor, pomocí kterého lze otestovat existenci výsledku ve vnořeném dotazu (subquery) a na základě toho provést dotaz nebo nějakou úlohu. Sql EXISTS provádí tzv. „Existence test“. Syntaxe SQL EXISTS 1 SQL Dotaz: SELECT Sloupce FROM dbo.Tabulka WHERE EXISTS    (SELECT Sloupce     FROM Dbo.Tabulka2     WHERE Podminka); (!!!) Pozor operátor… Read More »

SQL REPLACE funkce – Nahrazení textového řetězce

Funkce SQL REPLACE slouží k nahrazení textového řetězce nebo jeho části. Můžeme ho zařadit do textových funkcí – string functions. Před časem jsem napsal velký přehled T-SQL textových funkcí -najdete ho je zde Syntaxe funkce REPLACE SELECT REPLACE(<Pole s text ve kterém nahrazujeme>, <nahrazovaný znak>, <nahrazující znak>) FROM dbo.Tabulka Funkce má 3 argumenty: Pole s… Read More »

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… Read More »

SQL ADD COLUMN – Přidání sloupce do tabulky

Přidání sloupce do tabulky lze udělat dvěma způsoby. Prvním je přes sql management studio v grafickém rozhraní a druhým způsobem je použít příkaz T-SQL ADD COLUMN. Syntaxe T-SQL ADD COLUMN: ALTER TABLE dbo.Tabulka ADD <Sloupec> DatovyTyp NULL nebo NOT NULL Sloupec se založí na konec tabulky. Pokud je tabulka, do které chceme přidat nový sloupec neprázdná… Read More »

SQL ISNULL a COALESCE funkce – jaké jsou rozdíly a použítí

ISNULL a COALESCE jsou funkce, které slouží k práci s prázdnými hodnotami (NULL). Obě hodnoty vrací první hodnotu, která je různá od NULL z předem nadefinovaných vstupních parametrů. Mezi oběma funkcemi jsou ale rozdíly. Syntaxe ISNULL: SELECT ISNULL(<Sloupec>, <Náhradní Sloupec/Hodnota 1>) FROM dbo.Tabulka Syntaxe COALESCE: SELECT COALESCE(<Sloupec>, <Náhradní Sloupec/Hodnota 1>, <Náhradní Sloupec/Hodnota 2>,…) FROM dbo.Tabulka Rozdíly mezi… Read More »

SQL CREATE TABLE- Jak na založení tabulky v databázi

By | 30.4.2017

Založení tabulky v databázi patří mezi základní dovednosti. Při založení pomocí příkazu sql CREATE TABLE tabulky definujeme: Název tabulky spolu s určením databáze a schématu Seznam sloupců spolu s datovými typy, constraints a definováním toho jestli může být sloupec prázdný (NULL vs NOT NULL) Tabulku můžeme založit v SQL dvěma základními způsoby: CREATE TABLE – v… Read More »

SQL MERGE příkaz – INSERT, UPDATE, DELETE jedním vrzem

By | 30.4.2017

Příkaz SQL MERGE je pokročilý způsob jak porovnat 2 tabulky (Source a Destination). Porovnáváme záznamy a na základě shody (nebo neshody) prováníme UPDATE, INSERT nebo DELETE podle toho, jak porovnání záznamů v tabulkách dopadne. Využijeme zejména při synchronizaci dat mezi objekty/systémy nebo při ETL procesech v rámci datového skladu. Syntaxe: MERGE CilovaTabulka AS TARGET USING ZdrojovaTabulka AS… Read More »

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… Read More »

SQL LIKE operátor s příklady – umíte použít wildcards?

By | 27.4.2017

Tento operátor umožňuje vyhledat řetězec textu na základě určitého paternu. Nejčastěji ho využijete v klauzuli WHERE, ale dá se aplikovat v libovolné části SQL dotazu, např. SELECT, UPDATE nebo DELETE. T-SQL LIKE má následující syntaxi: Syntaxe: SELECT <Sloupec 1> FROM dbo.Tabulka WHERE <Sloupec> LIKE <patern>; Operátor se dá použít i k aplikaci negativně vymezené podmínky, použili bychom tedy… Read More »

SQL DELETE table – mazání + rozdíl DELETE vs TRUNCATE

By | 26.4.2017

Rozeznáváme 2 typy příkazu, které slouží k mazání dat – SQL příkazy DELETE a TRUNCATE (viz článek SQL TRUNCATE). Každý je jiny a hodí se pro jinou situaci. Je dobré znát oba a podle potřeby si vybrat. Syntaxe (první varianta je optional): DELETE FROM dbo.Tabulka WHERE Podminka; nebo DELETE dbo.Tabulka WHERE Podminka; Na velké množství záznamů opatrně Pomocí… Read More »

SQL TRUNCATE table – nepoužívej DELETE když nemusíš

By | 26.4.2017

T-SQL TRUNCATE statement vymaže všechny záznamy v tabulce. Na rozdíl od DELETE (viz. článek SQL DELETE) příkazu nemáte možnost filtrovat, které záznamy vymazat. Je to všechno nebo nic. Truncate je ale za to výrazně rychlejší oproti DELETE díky tomu, že zapisuje daleko méně do transakčního logu. Syntaxe T-SQL Truncate TRUNCATE TABLE dbo.Tabulka; nebo TRUNCATE dbo.Tabulka; První varianta… Read More »

T SQL View – Znáte Create, Alter, Drop View? Víte co je Indexed view?

By | 25.4.2017

Views neboli pohledy mají v databázích a datových skladech své místo. Jedná se o objekty, které je v zásadě výhodné využívat, protože neobsahují data (nezabírají storage). Obsahují pouze dotaz do tabulek. Složitější T SQL view však mohou být náročnější na logické operace zejména při komplikovaných dotazech s více joiny do velkých tabulek. Tato situace se dá zase řešit… Read More »