Relační databáze a SQL
SQL (Structured Query Language) je standardizovaný jazyk pro správu dat v relačních databázích. Data jsou zde organizována do tabulek propojených relacemi. Jako bug hunter používáš SQL k tomu, abys přinutil databázi vydat data, ke kterým nemáš mít přístup.
Základní pojmy:
- Tabulka (Table): Skládá se z řádků (záznamů) a sloupců (atributů).
- Primární klíč (PK): Unikátní ID každého řádku (např.
user_id). - Cizí klíč (FK): Odkaz na PK v jiné tabulce, který vytváří vztah mezi daty.
- RDBMS: Systémy jako PostgreSQL, MySQL nebo SQLite, které tyto databáze spravují.
Rozdělení SQL příkazů
SQL se dělí do skupin podle toho, zda definujeme strukturu nebo manipulujeme s obsahem:
DDL (Definition)
Definuje "krabice" na data. Příkazy: CREATE, ALTER, DROP.
DML (Manipulation)
Práce s daty (CRUD). To nejdůležitější: SELECT, INSERT, UPDATE, DELETE.
Klíčové příkazy v praxi
| Operace | SQL Příkaz | Vysvětlení |
|---|---|---|
| Výběr | SELECT * FROM Uzivatele; | Vybere všechna data z tabulky. |
| Filtrování | SELECT jmeno FROM Uzivatele WHERE vek > 18; | Filtruje uživatele podle podmínky. |
| Řazení | SELECT * FROM Produkty ORDER BY cena DESC; | Seřadí data od nejvyšší ceny. |
| Aktualizace | UPDATE Uzivatele SET heslo = '123' WHERE id = 5; | Změní data u konkrétního záznamu. |
Pokročilé mechanismy
Síla SQL spočívá v propojování tabulek a výpočtech nad daty:
- JOIN: Spojuje data z více tabulek (např. spojení objednávek se jmény zákazníků).
- Agregační funkce:
COUNT()(počet),SUM()(součet),AVG()(průměr),MAX/MIN.