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 Seznam tabulek bez primárního klíče – skript

Tabulce bez clusterovaného indexu se říká heap (hromada), protože je to jen hromada neuspořádaných dat. Naopak tabulka s clusterovaným indexem je lépe strukturovaná do balanced tree. Primární klíč je sám o sobě clusterovaným indexem a měla by ho mít každá tabulka. Optimalizovaná tabulka nebo dotaz uspořádaná do balanced tree daleko lépe v rámci datového modelu… Čtěte více »

SQL Seznam sloupců s určitým datovým typem – INFORMATION_SCHEMA.COLUMNS

Denním chlebem db admina je sledovat v jaké kondici se nachází jeho databáze a SQL Server instance. Často je v rámci politiky stanoveno, že některé sloupce musí mít určitý sql datový typ – například že se nesmí z určitých důvodů používat (n)varchar (max) a potřebujeme získat seznam sloupců a datové typy, které se v naší… Čtěte více »

SQL Datum – Dnešní datum, číslo týdne, měsíce a další skripty

Operace nad datumovými datovými typy jsou hodně frekventované a často potřebujeme pomocí SQL funkcí získat datum nebo nějakou jinou informaci, která z datumu vychází – například číslo týdne, měsíce, roku, posledního dne v měsíci a podobně. Dnešní datum – GETDATE(), SYSDATETIME() Dnešní datum a čas k okamžiku realizace dotazu můžeme získat dvěma způsoby. Prvním je… Čtěte více »

SQL Chyba – Conversion failed when converting the varchar value to data type int

Chybu Conversion failed when converting the varchar value to data type int vypíše SQL Server klient (např. Management studio) v momentě, kdy se snažíme hodnotu, která je uložena jako datový typ varchar (text) konvertovat na datový typ INTEGER. To nemusí být problém pokud máme jako varchar uložena čísla, ale problém nastane pokud se nám mezi tato… Čtěte více »

SQL Duplikace hodnot v tabulce s příkladem – Jak vypsat seznam duplicitních hodnot?

V některých situacích si potřebujeme udělat přehled o tom, jaká data se nacházejí v tabulce. Nebo si třeba chceme zkontrolovat jestli se v tabulce nenachází duplikace hodnot, které tam nechceme. Jak vypsat seznam takových duplicitních záznamů přes SQL skript? Jak zjistit duplikaci řádků v SQL tabulce? Úlohu budu demonstrovat na jednoduchém příkladu. Mějme dimenzní tabulku… Čtěte více »

SQL IDENTITY (Auto increment) – Automatické zvýšení hodnoty, popis argumentů příkazu

IDENTITY je v SQL Server tabulce vlastnost atributu (sloupce), která umožňuje automatické číslování záznamů, které jsou vkládány do tabulky. Vytváříme tak automatický inkrement s jedinečnými hodnotami bez toho abychom museli vkládat do tabulky číslo ručně. Tuto funkci lze využít na číselné datové typy a typické využítí je pro identifikátory a primární klíče. K automatickému číslování lze… Čtěte více »

DBCC (Database console commands) – Velký přehled

DBCC je zkratka pro database console commands, kdy jsou příkazy prováděné nad určitou databází. Sada DBCC příkazů umožňuje vykonávat určité administrační operace nebo dotazy nad databázemi formou skriptování místo používání grafického rozhraní management studia. Pro exekuci těchto příkazů musíte mít většinou velmi silnou roli (sysadmin, serveradmin, db_owner, atp). Příkazy se dělí do několika skupin: Údržba… Čtěte více »

SQL Schema databáze – Užitečné skripty

Databázové schéma je prostor (kontejner), který sdružuje databázové objekty – tabulky, pohledy, procedury, atd. Primárním důvodem pro zakládání schémat je logické oddělení určitých objektů od jiných a možnost upravovat přístupová práva pro jednotlivá schémata uživatelům. CREATE a DROP SQL Database schema 1) Vytvoření SQL schéma: CREATE SCHEMA trzby; 2) Založení SQL schématu s ověřením existence:… Čtěte více »

SQL CONCAT_WS – spojení textových řetězců se separátorem

Jednou z novinek ve verzi SQL Server 2017 je nasazení nové funkce CONCAT_WS. Funkce dělá to samé jako CONCAT (viz velký článek o string funkcích), ale narozdíl od ní umožňuje zadat v prvním argumentu separátor – znak, kterým jsou jednotlivé stringy odděleny. Typickým využitím funkce může být generování csv souborů. Syntaxe CONCAT_WS ( separátor, argument1, argument2… Čtěte více »

SQL TRIM, LTRIM, RTRIM funkce – očištění mezer z textu

Když se pár chytrých hlav z Microsoftu dá dohromady, může z toho vzniknout nějaké to vylepšení. Jedním z těchto vylepšení, které přišlo s edici SQL Server 2017 je funkce TRIM. Tato funkce patří mezi sql textové funkce a umožňuje na obou stranách nějakého textu (stringu) odstranit mezery. Edice před SQL Server 2017 obsahovaly pouze funkce… Čtěte více »