Tag Archives: Užitečné SQL Skripty

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

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

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

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

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

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

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

xp_cmdshell – Jak zapnout cmdshell v SQL Server?

By | 30.6.2018

xp_cmdshell je opravdu velmi silná procedura, která umožňuje spouštět příkazy přes příkazovou řádku (cmd). Pomocí cmdshell můžete přes SQL platformu realizovat jakoukoliv operaci nad Windows serverem – např. kopírování souborů, vytváření, mazání, apod. Z ale toho ale plynou také velká bezpečnostní rizika. Proto je také procedura defaultně vypnutá a nedoporučuje se její trvalé zapnut z… Read More »

SQL Server Agent pro SQL Express + návod

By | 28.6.2018

SQL Server agent je nástroj integrovaný do SQL Serveru, jehož hlavním účelem je automatické plánování a spouštění úloh. Prostřednictvím SQL Agenta si můžeme založit tzv. Job a v rámci Jobu naplánovat jednotlivé úlohy – třeba spuštění skriptu, SSIS package, powershellu a mnoho dalšího. SQL Server agent je ale bohužel dostupný až od edice Standard a… Read More »

SQL SQLCMD (Server command line) – SQL přes cmd

By | 28.6.2018

V tomto krátkém článku představím možnost, jak lze spustit sql skript mimo SQL management studio nebo jiný SW nástroj. Použijeme utilitu SQL server command line, zkráceně sqlcmd. Tato utilita umožňuje pracovat se SQL serverem prostřednictvím příkazové řádky. Využití je zřejmé a to třeba práce s SQL z různých aplikací. Já si tímto příspěvkem připravuju půdu… Read More »

Základní SQL dotazy – Přehled selectů pro začátečníky

By | 14.9.2017

Dnes tu mám článek určený pro změnu začátečníkům. Bude plný příkladů sql dotazů s tím, že si to dáme od těch nejzákladnějších a postupně budeme přitvrzovat. SQL dotazy budou seřazeny chronologicky podle obtížnosti. Postupně budu přidávat další. Pro IT oddělení je dnes znalost SQL už nutnost, ale nastala doba, kdy SQL dotazování používají nejen ajťáci,… 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 UPDATE tabulky – Syntaxe a příklad UPDATE

By | 23.4.2017

Příkaz UPDATE slouží ve SQL ke změně existujících záznamů v tabulce. Můžeme tak upravit 1 záznam, více záznamů nebo všechny. Podmínka, na základě které jsou ovlivněny záznamy, je umístěna ve WHERE klauzuli. Syntaxe – 3 způsoby použítí UPDATE A) Jednoduchá forma: Změna hodnot v určitém sloupci nebo sloupcích na základě podmínky UPDATE dbo.Tabulka SET <Sloupec… Read More »

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

By | 20.8.2016

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