Strukturovaný dotazovací jazyk (SQL) je standardizovaný programovací jazyk, který využívají správci databází a analytici dat pro komunikaci s databázemi. Je široce nasazován v rámci programovacích jazyků pro webové stránky, aplikace a další softwarové platformy.
Slouží k interakci s daty uloženými v databázi a k jejich manipulaci. To zahrnuje vytváření a modifikaci tabulek a sloupců, stejně jako dotazování na data pomocí specifických SQL příkazů.
Tento článek vám poskytne cenné informace, pokud se připravujete na pracovní pohovor, kde se očekávají dotazy týkající se SQL. Ať už usilujete o pozici datového inženýra, analytika dat nebo správce databáze, následující otázky by měly být součástí vaší přípravy.
Jaké jsou základní SQL příkazy?
Mezi klíčové SQL příkazy patří:
SELECT
– získává data z databáze.CREATE TABLE
– vytváří novou tabulku.DELETE
– odstraňuje data z databáze.INSERT INTO
– vkládá nová data do tabulky.ALTER DATABASE
– upravuje strukturu databáze.CREATE DATABASE
– vytváří novou databázi.UPDATE
– aktualizuje stávající data v databázi.
Jaké jsou čtyři hlavní kategorie SQL příkazů?
Příkazy SQL se obvykle dělí do následujících čtyř kategorií:
- Příkazy DDL (Data Definition Language) – jazyk definice dat.
- Příkazy DML (Data Manipulation Language) – jazyk manipulace s daty.
- Příkazy DCL (Data Control Language) – jazyk pro kontrolu dat.
- Příkazy TCL (Transaction Control Language) – jazyk pro řízení transakcí.
Co je to primární klíč v SQL?
Primární klíč je sloupec, nebo skupina sloupců, která jednoznačně identifikuje každý řádek v databázové tabulce. SQL databáze kladou na primární klíče značný důraz. Každému řádku v tabulce přiřazují unikátní identifikátor. Primární klíč může být tvořen jedním nebo více sloupci a v tabulce může být definován pouze jeden primární klíč.
Jaké datové typy se používají v SQL?
Datový typ specifikuje, jaký druh dat může objekt uchovávat. Může to být například binární řetězec, číselná hodnota, textový řetězec, finanční údaj, datum a čas a další.
V SQL jsou datové typy rozděleny do těchto hlavních skupin:
- Přesná číselná data
- Aproximativní číselná data
- Data a časové údaje
- Řetězce znaků
- Unicode znakové řetězce
- Binární řetězce
Kde se v SQL serveru ukládají uživatelská jména a hesla?
Uživatelská jména a hesla se uchovávají v systémových tabulkách `sys.server_principals` a `sys.sql_logins`. Hesla nejsou ukládána v nešifrované podobě.
Co je to SQL injection?
Útoky SQL injection patří mezi nejčastější kybernetické hrozby. Umožňují útočníkům získat neoprávněný přístup k datům manipulací s databázovými dotazy v aplikaci. To může vést k vážným následkům, od finančních ztrát až po únik citlivých údajů. Nejefektivnější ochranou je prevence těchto útoků.
Co je trigger v SQL a jaké jsou jeho typy?
Trigger je speciální typ uložené procedury, která se automaticky spouští při určité události na databázovém serveru. Triggery se používají k validaci dat před nebo po jejich úpravě pomocí příkazů DDL a DML.
Existují tři základní typy triggerů: LOGON, DDL a DML.
- Triggery typu LOGON se aktivují při přihlášení uživatele.
- Triggery typu DDL se spouštějí při provedení příkazů DDL, jako je `CREATE`, `ALTER` nebo `DROP`.
- Triggery typu DML se aktivují při úpravě dat pomocí příkazů DML, jako je `INSERT`, `UPDATE` nebo `DELETE`.
Jaký je rozdíl mezi funkcemi pro jeden řádek a funkcemi pro více řádků?
Funkce pro jeden řádek zpracovávají vždy jen jeden řádek tabulky a vrací jeden výsledek pro každý řádek. Mezi typické příklady patří funkce pro převod velikosti písmen nebo funkce pro úpravu délky textových řetězců.
Funkce pro více řádků, známé také jako agregační funkce, pracují s více řádky tabulky najednou a vracejí souhrnný výsledek. Příkladem může být funkce pro výpočet průměru nebo součtu hodnot.
Co je normalizace databáze a jaké jsou její čtyři základní formy?
Normalizace databáze je proces, který slouží k uspořádání dat s cílem zlepšit jejich dostupnost a redukovat redundanci. Během normalizace se tabulky a sloupce uspořádávají tak, aby všechny závislosti byly správně vynuceny databázovými omezeními integrity.
Čtyři základní formy normalizace databáze jsou:
- První normální forma (1NF)
- Druhá normální forma (2NF)
- Třetí normální forma (3NF)
- Boyce-Coddova normální forma (BCNF) / Čtvrtá normální forma (4NF)
Co jsou indexy a omezení v SQL?
Indexy a omezení jsou důležité prvky SQL. Indexy slouží k rychlejšímu vyhledávání dat ve velkých databázích. Omezení jsou pravidla, která určují chování databáze při splnění určitých podmínek.
Indexy zlepšují výkon dotazů urychlením vyhledávání dat v tabulkách. Také napomáhají lepší čitelnosti dat v tabulkách.
Omezení limitují typ dat, které mohou být do tabulky vloženy. Tím se zajišťuje přesnost a spolehlivost uložených dat. Pokud dojde k porušení mezi definovaným omezením a akcí s daty, akce se zruší.
Jaká jsou nejběžnější omezení v SQL?
Mezi často používaná omezení v SQL patří:
CREATE INDEX
: Umožňuje vytvoření indexů pro rychlejší načítání dat.FOREIGN KEY
: Vytváří vazby mezi tabulkami na základě souvisejících atributů.DEFAULT
: Určuje výchozí hodnotu sloupce, pokud není zadána jiná hodnota.UNIQUE
: Zajišťuje, že každá hodnota ve sloupci je unikátní.PRIMARY KEY
: Identifikuje jednoznačně každý řádek tabulky.NOT NULL
: Zajišťuje, že sloupec nesmí obsahovat hodnotu NULL.CHECK
: Ověřuje, zda každá hodnota ve sloupci splňuje definované podmínky.
Je hodnota NULL v SQL rovna 0?
Hodnota NULL v SQL reprezentuje chybějící, neznámou nebo nepřiřazenou hodnotu. Není ekvivalentní prázdnému řetězci (‚ ‚) ani nule (0). Hodnotu NULL nelze porovnávat s jinými hodnotami pomocí operátorů ‚=‘ nebo ‚>‘, protože není ani rovna, ani nerovna žádné jiné hodnotě.
Jak se chránit před útoky SQL injection?
Kromě průběžného skenování a penetračního testování je důležité používat techniky zabezpečení, jako je validace a sanitizace vstupů, připravené příkazy a parametrizované SQL dotazy, které zabraňují útokům SQL injection. K další ochraně databáze SQL slouží firewally.
Co je to dynamický SQL a kdy je vhodné jej použít?
Dynamický SQL umožňuje vytvářet SQL dotazy za běhu, na základě různých kritérií, jako je například aktuální datum, čas nebo jiné proměnné.
Dynamický SQL umožňuje modifikovat dotazy flexibilně a může pomoci při dosahování různých cílů v programování, úpravě databází a implementaci funkcí datových skladů. Je to mocný nástroj pro rozvoj vašich programovacích dovedností.
Jaké jsou různé typy klíčů v SQL?
Primární klíč: Jak již bylo zmíněno, primární klíč jednoznačně identifikuje každý řádek v tabulce a nemůže obsahovat hodnoty NULL. Tabulka může mít pouze jeden primární klíč, který se skládá z jednoho nebo více sloupců.
Cizí klíč: Odkazuje na primární klíč v jiné tabulce a slouží k vytvoření vztahů mezi tabulkami. Tabulka s cizím klíčem se nazývá podřízená tabulka, zatímco tabulka s primárním klíčem, na který se odkazuje, je nadřazená tabulka.
Superklíč: Je klíč nebo sada klíčů, která dokáže jednoznačně identifikovat záznamy v tabulce. Superklíč nemusí obsahovat pouze atributy nutné pro identifikaci záznamu.
Kandidátský klíč: Je podmnožina superklíčů, která je minimální a postačuje pro identifikaci záznamu v tabulce. Všechny atributy kandidátského klíče jsou nezbytné pro identifikaci záznamu.
Složený klíč: Skládá se ze dvou nebo více sloupců v tabulce, které dohromady jednoznačně identifikují řádek v tabulce.
Jaké jsou typy indexů v SQL?
V SQL se používají následující typy indexů:
- Hash index
- Index optimalizovaný pro paměť (neshlukovaný)
- Shlukovaný index
- Neshlukovaný index
- Unikátní index
- Index úložiště sloupců
- Index s zahrnutými sloupci
- Index na počítaných sloupcích
- Filtrovaný index
- Prostorový index
- XML index
- Fulltextový index
Co je to buffer pool (fond vyrovnávacích pamětí) a jaké jsou jeho výhody?
Buffer pool, neboli mezipaměť vyrovnávacích pamětí, je paměťová oblast v SQL Serveru, kterou využívají všechny zdroje k ukládání datových stránek. Velikost buffer pool se určuje při konfiguraci instance SQL Serveru a určuje, kolik datových stránek může být uloženo v paměti.
Výhody buffer pool:
- Zlepšuje I/O výkon
- Zvyšuje propustnost transakcí
- Snižuje I/O latenci
- Zrychluje operace čtení
Co je to závislost v SQL a jaké typy závislostí se rozlišují?
Závislost v SQL vzniká, když se jeden objekt odkazuje jménem v SQL příkazu uloženém v jiném objektu. Objekt, na který se odkazuje v příkazu SQL, se nazývá odkazovaná entita, zatímco objekt, který obsahuje SQL příkaz, se nazývá odkazující entita.
Různé typy závislostí v SQL:
- Funkční závislost
- Plně funkční závislost
- Multihodnotová závislost
- Tranzitivní závislost
- Částečná závislost
Co jsou to SQL JOIN a jaké jsou nejčastěji používané typy JOIN?
Spojení (JOIN) jsou klíčovým prvkem správy dat v SQL. Umožňují kombinovat data ze dvou nebo více tabulek do jedné výsledné tabulky, která se dá použít pro analýzu. Spojení také umožňují filtrovat výsledky na základě kritérií z jedné nebo více tabulek, což se hodí pro vyhledávání konkrétních řádků a sloupců.
V SQL existují čtyři hlavní typy spojení: INNER JOIN, OUTER JOIN, CROSS JOIN a SELF JOIN.
Jaké jsou množinové operátory v SQL?
Množinové operátory umožňují kombinovat data z více tabulek stejného typu. Podobají se operátorům JOIN, ale s některými rozdíly. Množinové operátory kombinují záznamy z různých dotazů, zatímco JOIN operátory kombinují sloupce z různých tabulek. Dotazy s množinovými operátory jsou složené SQL dotazy.
Závěr
Doufám, že tyto otázky vám dají představu o tom, co můžete očekávat při SQL pohovoru. Pro úspěšné zvládnutí pohovoru je důležité mít praktické zkušenosti s SQL, a toho se dá dosáhnout důkladným studiem SQL, procvičováním SQL dotazů a průběžným vzděláváním.
Pro podrobnější informace o SQL příkazech se podívejte na cheat sheet SQL.
Pro získání praktických dovedností v psaní SQL dotazů se podívejte na tyto platformy pro cvičení SQL.