Archiív rubriky: 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.

Fakta a dimenze – Tabulky v datovém skladu

Datový sklad je centrální informační systém, který slouží k uchování dat z jednoho nebo více podnikových operačních systémů, případně dalších externích zdrojů (excel, sharepoint, apod). Data jsou v datovém skladu organizována do schémat a před uložením projdou procesem čištění a úpravou struktury dat tak, aby byla pro uživatele srozumitelná a dale se jednoduše reportovat. Narozdíl… Čtěte více »

SQL View WITH SCHEMABINDING – hlídací pes nad view

Dříve jsem napsal větší článek, vé kterém jsem popisoval jak založit View v sql. V tomto článku se nenápadně nachází jeden SQL příkaz, který bych chtěl více objasnit zde. Jde o příkaz SCHEMABINDING, který se používá při založení view. SCHEMABINDING si můžeme představit jako hlídacího psa. Ten kontroluje, jestli v podkladové tabulce nedochází ke změnám,… Čtěte více »

SQL Vytvoření databáze (CREATE DATABASE) + skript

Databáze je systém souborů a objektů, které jsou v rámci databáze uspořádány a provázány prostřednictvím klíčů. V databázi SQL Server můžeme najít objekty jako – tabulky, pohledy (views), funkce, procedury, triggery a další. V zásadě máme 2 možnosti jak databázi vytvořit. První možnost je vytvoření databáze naklikat v SQL management studio nebo databázi založit pomocí… Čtěte více »

SQL Seznam sloupců z databáze – INFORMATION_SCHEMA.COLUMNS

SQL Server obsahuje řadu nativních systémových views a některá z nich umožňují vypisovat seznam tabulek nebo seznam sloupců z databáze. View INFORMATION_SCHEMA.COLUMNS obsahuje nejenom seznam sloupců a tabulek, ale také vlastnosti sloupců. Systémové view INFORMATION_SCHEMA.COLUMNS pro výpis seznamu sloupců a tabulek z databáze Systová tabulka je umístěna v databázi master – views – system views –… Čtěte více »

Optimalizace a zrychlení SQL dotazů – 10 tipů s ukázkou

Optimalizace sql dotazů je věčný boj, který začíná už při návrhu architektury databáze a škálování prostředků serveru. Při správném návrhu architektury se můžeme vyvarovat spoustě výkonových problému v budoucnu. V neposlední řadě výkon skriptů můžeme ovlivnit strukturou SQL dotazů a správně nastavenými indexy. Článek rozdělím na 2 hlavnní části: Jak optimalizovat pomocí SQL Architektury Jak… Čtěte více »

SQL Počet řádků a velikost tabulek v databázi + skript

Jednou za čas je potřeba se podívat na to, jak vypadají DB objekty v databázi s ohledem na velikost tabulek (počet řádků a storage). Jak zkontrolovat velikost tabulek v SQL databázi Pokud objektů v databázi není mnoho, tak můžeme kontrolu provést přímo ve vlastnostech jednotlivých tabulek v poli Data space a index space. Velikost tabulky… Čtěte více »

SQL Hierarchie Díl 4 – Úroveň hierarchie, cesta (Path) + skript

V předešlých dílech tohoto miniseriálu o hierarchiích jsme zapomněli na jednu věc, která se může hodit a tou je způsob jak zmapovat v hierarchii hloubku jednotlivých členů neboli úroveň hierarchie. Stejně tak může být užitečné umět zobrazit Path – cestu jednotlivých členů hierarchie. Vycházet budu opět z prvního dílu a tabulky se zaměstnanci, kterou jsem… Čtěte více »

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 Hierarchie Díl 1 – jak správně vytvořit parent-child strukturu v tabulce?

Někdy potřebujeme v SQL vytvořit tabulku, která obsahuje hierarchii. Hierarchie je struktura (někdy se označuje jako parent-child hierarchie), která obsahuje závislosti mezi jednotlivými členy. Můžeme si to představit jako organizaci ve firmě. Firma má zaměstnance a ti mají svého nadřízeného. Nadřízení zaměstnanci mají opět svého nadřízeného a takto můžeme pokračovat až k CEO firmy, který… Čtěte více »

SQL Automatická oprava indexů v SQL Server + skript

V minulém článku (viz. Fragmentace indexů) jsem popisoval, jak zjistit fragmentaci indexů přes skript využívající systémové tabulky. Podle doporučení Microsoftu bychom měli indexy s fragmentací mezi 5 – 30 % reorganizovat (REORGANIZE) a indexy nad 30 % rebuildovat (REBUILD). Využijeme zde skript z minulého článku a vytvoříme automatický skript. Oprava indexů provedená tímto způsobem je… Č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 OPENJSON funkce – Jak parsovat JSON soubory?

Jedna z novinek, která přišla v nedávných SQL Server verzích je nativní podpora pro JSON formáty. Tato novinka přišla s SQL verzí 2016 (psal jsem o tom v tomto článku). JSON soubor je strukturovaný zápis dat pomocí jednoduché notace (podobně jako např. XML). Podívejme se blíže na novou funkci – OPENJSON. Příklad na SQL funkci… Čtěte více »

SQL příkaz BULK INSERT – import dat ze souboru

V minulém článku jsem popisoval jak funguje bcp utilita, která slouží k import a exportu dat nad SQL Server. Příkaz BULK INSERT funguje na podobném principu a jeho prostřednictvím můžeme provádět importy ze souboru a definovat oddělovače. Syntaxe příkazu BULK INSERT BULK INSERT databaze.schema.tabulka FROM‚zdrojovy soubor‘ WITH ( FIELDTERMINATOR = ‚<oddělovač sloupců>‘, ROWTERMINATOR = ‚<oddělovač… Čtěte více »

BCP utilita – rychlý bulk import a export v SQL Server

BCP je utilita, která je defaultně nainstalována s edicemi SQL Server a slouží k hromadnému importu nebo exportu velkého objemu dat v uživatelsky definovaném formátu. Tato utilita je optimalizována pro velké přesuny dat buďto mezi instancemi SQL serveru nebo mezi SQL instancí a nějakým textovým souborem. Utilita se používá jak pro jednorázový import/export dat, tak… Čtěte více »