Archív rubriky: SQL návody

T-SQL je jazyk, který se používá k práci s databázemi na platformě MS SQL Server.  V této sekci naleznete řadu článků a návodů na tématiku pro začátečníky. Pokud se chcete T-SQL naučit nebo si chcete něco zopakovat, koukněte na příslušný SQL tutoriál. Snažím se o to, aby každý článek obsahoval i příklad použítí a ukázku kódu

Pro začátečníky – jak se postupně seznámit s T-SQL

Níže najdete základní chronologickou osnovu, kterou bych doporučil následovat pro osvojení SQLka. Při studiu používejte pro doplnění a rozšíření znalostí i jiné zdroje. Pokud se těmito tématy buď zde na webu nebo jinde prokoušete a osvojíte si je, dá vám to dobrý základ pro efektivní práci s databázemi, řešit automatizace, BI, reporting, aplikace a podobně. Můžete položit základy

Před studiem doporučuju nainstalovat (v tomto pořadí) potřebné nástroje abyste si mohli nově nabyté znalosti rovnou zkoušet.

  • SQL Server (Express nebo Developer)
  • SQL Server Management studio
  • AdventureWorks databázi (cvičná databáze microsoftu)

1) Úvod do T-SQL – seznámení, základní orientace

Po prostudování těchto článků se seznámíme se základní syntaxí jazyka T-SQL sestavíme si jednoduché SQL dotazy.

2) Základní SQL klauzule – základní konstrukční prvky SQL dotazu

Po prostudování těchto článků budete umět napsat samostatně jednoduché dotazovací skripty do 1 tabulky

3) Spojování tabulek (FROM) – joinování

Typicky se v relační databázi nepřipojujeme pouze k 1 tabulce, ale několika (v klauzuli FROM). Existuje několik typů spojení mezi tabulkami. Po prostudování těchto článků pochopíte rozdíl mezi jednotlivými typy joinů a budete schopni psát složitější skripty s pomocí spojení více tabulek. V praxi je pochopení a bezchybná volba joinů v různých situacích asi největší problém při osvojení SQL jazyka (přehoupnutí od věčného začátečníka k mírně pokročilému)

  • INNER JOIN – společné záznamy z obou tabulek na základě join kritéria
  • LEFT JOIN – vše z levé tabulky a shoda u pravé tabulky na základě join kritéria
  • RIGHT JOIN – vše z pravé tabulky a shoda z levé tabulky na základě join kritéria
  • FULL JOIN – vše z obou tabulek
  • CROSS JOIN – kartézský join všechny kombinace záznamů v obou tabulkách

4) Seznámení s SQL funkcemi (kategorie SQL funkce)

Po pochopení základní konstrukce jazyka se můžeme podívat, jakým způsobem můžeme s daty pracovat (stejně jako třeba v Excelu) prostřednictvím funkcí. Ty nejčastěji používáme v klauzuli SELECT. Níže pár příkladů těch nejpoužívanějších funkcí, další najdete v příslušné kategorii na webu.

5) DDL (vytváření, mazání, čištění tabulek) a DML (změna záznamů v tabulkách)

Do teď jsme se zabývali tzv. DQL (data query language) – dotazováním. Po pochopení jak se do tabulek dotazovat se můžeme vrhnout do samotného zakládání tabulek a příkazů, které záznamy v tabulce nějakým způsobem mění nebo rovnou mažou.

6) Napojení dat do Excelu nebo reporting platformy

Pokud umíme data v databázi připravit a efektivně se do nich dotazovat, můžeme si výsledek dotazů natáhnout třeba do Excelu nebo Power BI

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 »

SQL HAVING vs WHERE – Často se zde dělá chyba

SQL HAVING klauzule je speciálním druhem SQL příkazu, který se chová podobně jako jako WHERE. To znamená, že pomocí ní definujeme omezující podmínku při vyhledávání nebo manipulaci s tabulkami. Mezi oběma klauzulemi jsou ale významné rozdíly. Pojďmě si tedy SQL HAVING vs WHERE odlišnosti popsat. Pořadí v SQL skriptu SELECT FROM WHERE GROUP BY HAVING ORDER… Čtěte více »

SQL OVER() s PARTITION BY- Klauzule pro fajnšmekry + příklady

OVER příkaz 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… Čtěte více »

SQL Agregační funkce – SUM, COUNT, MAX, MIN, AVG

SQL agregační funkce – AVG, COUNT, MAX, MIN, SUM jsou jedny z nejpoužívanějších funkcí jak v Excelu tak i v SQL. Zdaleka nejčastěji totiž potřebujeme něco sečíst, zprůměrovat, určit minimální a maximální hodnotu. Při aplikaci agregační funkce je přítomnost klauzule GROUP BY povinná (pokud tedy zrovna neprovádíme operace nad okny pomocí OVER()). Seznam agregačních funkcí:… Čtěte více »

SQL Funkce na pořadí – ROW_NUMBER, RANK, DENSE_RANK, NTILE

SQL funkce na pořadí (ranking functions) nám umožňují přiřazovat v záznamům v tabulce pořadí na základě hodnoty nějakého pole nebo polí. Ranking funkce se vyznačují tím, že klauzule OVER() je povinná. Funkcí na pořadí řadíme do tzv Window funkcí a do stejné skupiny patří kromě nich také agregační funkce a Offset funkce (na stránkování). Seznam ranking… Čtěte více »

SQL OFFSET Funkce – LAG, LEAD, FIRST_VALUE, LAST_VALUE

OFFSET funkce jsou v MS SQL Server relativně nové, jsou dostupné teprve od verze SQL Server 2012. Tyto funkce umožňují “listovat” mezi řádky tabulky. Lépe řečeno na řádku aktuálním si můžete prostřednictvím takových funkcí sáhnout na řádek minulý nebo následující. Tyto funkce řadíme do tzv Window funkcí a do stejné skupiny patří kromě nich také agregační funkce a… Čtěte více »

SQL ORDER BY – Řazení dat v SQL tabulce sestupně a vzestupně

ORDER BY klauzule v SQL umožňuje výsledky dotazu uspořádat podle určitého pole (sloupce) nebo více sloupců. Existují 2 základní možnosti seřazení záznamů v tabulce. Vzestupně (ascending order = ASC) – seřadí záznamy od nejmenšího po největší v případě čísel nebo o “A” do “Z” v případě textových řetězců. Sestupně (descending order = DESC) seřadí záznamy… Čtěte více »

SQL WHERE – Zadáváme podmínku u tabulky pomocí SQL

WHERE klauzule slouží k definování omezujících podmínek při dotazování. Ve většině případů nás při dotazování do tabulky nezajímají všechny záznamy, ale pouze určitá jejich podmnožina na základě kritérií. Kritéria definujeme pomocí operátorů. Pořadí v SQL skriptu SELECT FROM WHERE GROUP BY HAVING ORDER BY Syntaxe WHERE: SELECT [Sloupec1], [Sloupec2] FROM Tabulka WHERE pole <Operator> hodnota… Čtěte více »

SQL SELECT – Výběr sloupců z tabulky – základní klauzule

SELECT klauzule slouží k získání infromací z tabulky. Za touto klauzulí následuje seznam sloupců, které potřebujeme zobrazit. Select se vždy musí použít s klauzulí FROM pomocí které říkáme, ze které tabulky chceme data vybrat a ideálně ještě s klauzulí WHERE pomocí které umíme omezit výsledek na základě nějaké podmínky. Syntaxe SQL SELECT Existují 2 základní možnosti… Čtěte více »

SQL CROSS JOIN – Kartézský součin

Příkaz CROSS JOIN v SQL souží ke spojení 2 tabulek v relační databázi. Jeho výsledkem je kartézský součin => všechny kombinace levé (A) a pravé (B) tabulky. Syntaxe: SELECT sloupce FROM Tabulka_A CROSS JOIN Tabulka_B /*Tabulka A = levá; Tabulka B = pravá*/ Příklad CROSS JOIN: Tento typ JOINu si můžeme ukázat na příkladu. Vyrobíme… Čtěte více »