Jaké typy joins
jste v SQL použili a vysvětlete, jak fungují?
Odpovědět:
INNER JOIN
: Vrátí řádky s odpovídajícími daty z obou tabulek.LEFT JOIN
: Vrátí všechny řádky z levé tabulky a odpovídající řádky z pravé tabulky.RIGHT JOIN
: Vrátí všechny řádky z pravé tabulky a odpovídající řádky z levé tabulky.FULL JOIN
: Vrátí všechny řádky z obou tabulek, včetně neodpovídajících řádků.
Vysvětlete koncepty ACID v SQL a jejich roli ve správě transakcí
Odpověď: ACID znamená Atomicity, Consistency, Isolation, Durability
. Toto jsou základní vlastnosti při správě transakcí v SQL:
Atomicity
zajišťuje, že transakce je buď plně zpracována, nebo není zpracována vůbec.Consistency
zajišťuje, že data musí splňovat definovaná pravidla, omezení a podmínky.Isolation
zajišťuje, že souběžné transakce se navzájem neovlivňují.Durability
zajišťuje, že jakmile je transakce dokončena, změny v databázi jsou bezpečně a trvale uloženy.
Jaký je rozdíl mezi ROW_NUMBER(), RANK(), DENSE_RANK()
funkcemi v SQL?
Odpověď: ROW_NUMBER(), RANK(), DENSE_RANK()
všechny se používají pro číslování řádků ve výsledku dotazu, ale mají následující rozdíly:
ROW_NUMBER()
: Přiřadí souvislá čísla k řádkům ve výsledku dotazu bez zohlednění duplicit.RANK()
: Přiřadí čísla k řádkům ve výsledku dotazu a v případě remíz přeskočí další číslo.DENSE_RANK()
: Přiřadí čísla k řádkům ve výsledku dotazu a nepřeskočí další číslo v případě remíz.
Jak používat window functions
v SQL a uvést příklad.
Odpověď: Window functions
povolit provádění výpočtů na sadě souvisejících řádků bez změny výsledku hlavního dotazu. Můžeme například použít funkce okna k výpočtu průběžných součtů nebo načtení prvních N řádků v sadě výsledků.
SELECT ProductID, UnitPrice,
SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal
FROM Products;
Jak používat regulární výrazy v SQL pro porovnávání vzorů
Odpověď: Regulární výrazy v SQL se používají pro komplexní vyhledávání textových vzorů. Často se používají s LIKE
operátorem nebo funkcemi jako REGEXP_LIKE
(v Oracle) nebo REGEXP_MATCHES
(v PostgreSQL).
SELECT * FROM Employees WHERE LastName LIKE '%son%';
Jak používat funkce JSON v SQL pro práci s daty JSON
Odpověď: Funkce JSON v SQL umožňují dotazování, vkládání, aktualizaci a mazání dat ve formátu JSON v databázi.
K manipulaci s vlastnostmi JSON můžeme například použít funkce jako JSON_VALUE, JSON_QUERY, JSON_MODIFY(v SQL Server) nebo operátory jako ->, ->>, #>, #>> atd.(v PostgreSQL).
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
Pokročilé techniky pro optimalizaci dotazů SQL a ladění výkonu databáze
Odpověď: K optimalizaci SQL dotazů a výkonu databáze můžeme použít techniky jako:
- Použití indexů pro často dotazované sloupce.
- Optimalizace
JOIN
aWHERE
klauzule pro efektivní získávání dat. - V případě potřeby využití funkcí okna a stránkování.
- Vyhněte se
SELECT
*, abyste získali pouze nezbytné sloupce. - V některých případech použití nápovědy k dotazu.
- Zajištění normalizace dat a odstranění duplicit.
- Používání nástrojů pro sledování výkonu pro sledování a dolaďování databáze.
Vysvětlete, jak používat SET
operace (UNION, INTERSECT, EXCEPT)
v SQL
Odpověď: SET
Operace (UNION, INTERSECT, EXCEPT)
se používají ke kombinování a manipulaci se sadami výsledků různých dotazů.
UNION
: Kombinuje výsledky dvou nebo více dotazů do jedné datové sady a odstraňuje duplikáty.INTERSECT
: Vrátí řádky, které se objevují v obou sadách výsledků dotazu.EXCEPT
: Vrátí řádky, které se objevují v první sadě výsledků dotazu, ale ne ve druhé.
Jak používat funkce dotazu jako LEAD, LAG, FIRST_VALUE, LAST_VALUE
v SQL
Odpověď: Funkce dotazu LEAD, LAG, FIRST_VALUE, LAST_VALUE
se používají k načtení hodnot ze souvisejících řádků ve stejném výsledku dotazu.
LEAD
: Získá hodnotu sloupce z dalšího řádku ve výsledku dotazu.LAG
: Získá hodnotu sloupce z předchozího řádku ve výsledku dotazu.FIRST_VALUE
: Načte první hodnotu sloupce ve výsledku dotazu.LAST_VALUE
: Načte poslední hodnotu sloupce ve výsledku dotazu.