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 COUNT funkce – jak si spočítat řádky v tabulce?

Funkce sql COUNT patří do Agregačních funkcí v sql 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 Počet řádků v celé tabulce SELECT COUNT(*)… Čtěte více »

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 SQL Dotaz: SELECT Sloupce FROM dbo.Tabulka WHERE EXISTS    (SELECT Sloupce     FROM Dbo.Tabulka2     WHERE Podminka); Pozor operátor provádí pouze… Čtěte více »

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

Funkce SQL REPLACE slouží k nahrazení textového řetězce nebo jeho části jiným textem. Můžeme ho zařadit do textových funkcí – string functions. 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 textem ve kterém provádíme nahrazení textu nebo jeho části Nahrazovaný text… Čtěte více »

SQL CTE (Common Table Expressions) WITH klauzule

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. Syntaxe SQL CTE s WITH WITH Alias_Dotazu AS ( SELECT Sloupec1, Sloupec2 FROM dbo.Tabulka ) SELECT * FROM Alias_Dotazu; Pomocí klauzule WITH… Čtěte více »

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á… Čtěte více »

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ě funkce 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… Čtěte více »

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

Založení tabulky v databázi patří mezi základní úlohy. Při založení pomocí příkazu sql CREATE TABLE tabulky definujeme: Název tabulky spolu s určením schématu a ideálně databáze 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… Čtěte více »

SQL MERGE příkaz – INSERT, UPDATE, DELETE současně

Příkaz SQL MERGE byl uveden již v roce 2008 a je to pokročilý způsob jak porovnat 2 tabulky (Source a Destination). Porovnáváme záznamy a na základě shody (nebo neshody) provádíme UPDATE (změnu záznamů), INSERT (vkádání záznamů) nebo DELETE (mazání) podle toho, jak porovnání záznamů v tabulkách dopadne. Využijeme zejména při synchronizaci dat mezi objekty/systémy nebo… Čtěte více »

SQL CASE WHEN THEN ELSE s příklady

CASE je výraz (expression), který umožňuje aplikovat podmíněnou logiku v sql skritpu. Jde o 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 příkazem… Čtěte více »

SQL LIKE operátor s příklady wildcards

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 LIKE operátoru 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… Čtěte více »