Obsah
SQL (Structured Query Language)
SQL je deklarativní jazyk, což znamená, že uživatel definuje co chce získat (např. „všechny zákazníky z Prahy“), nikoliv jak má počítač technicky data na disku vyhledat. Vznikl v 70. letech v laboratořích IBM a od té doby se stal celosvětovým standardem pro práci s daty.
SQL se používá v relačních databázích (RDBMS), kde jsou data organizována do tabulek s řádky a sloupci, které jsou mezi sebou propojeny pomocí relací (vztahů).
Čtyři základní operace (CRUD)
Většina práce v SQL se točí kolem čtyř základních akcí, pro které se v IT používá akronym CRUD:
| Operace | SQL příkaz | Příklad |
|---|---|---|
| Create (Vytvořit) | INSERT | Vložení nového uživatele do databáze. |
| Read (Číst) | SELECT | Vyhledání informací o produktu podle ID. |
| Update (Aktualizovat) | UPDATE | Změna adresy u existujícího zákazníka. |
| Delete (Mazat) | DELETE | Odstranění starého záznamu z tabulky. |
Struktura SQL dotazu
Typický dotaz pro výběr dat vypadá následovně:
SELECT jmeno, email FROM uzivatele WHERE mesto = 'Praha' ORDER BY jmeno ASC;
Tento příkaz říká: „Vyber sloupce jméno a e-mail z tabulky uživatelé, ale jen ty z Prahy, a seřaď je podle jména od A do Z.“
Kategorie SQL příkazů
Jazyk SQL se dělí do několika podskupin podle jejich účelu:
- DML (Data Manipulation Language): Práce se samotnými daty (
SELECT,INSERT,UPDATE,DELETE). - DDL (Data Definition Language): Definice struktury (vytváření tabulek, změna sloupců –
CREATE,ALTER,DROP). - DCL (Data Control Language): Správa přístupových práv (
GRANT,REVOKE).
Relační model a JOIN
Síla SQL spočívá v možnosti propojovat tabulky. Místo toho, aby byla všechna data v jedné obří tabulce, jsou rozdělena (např. tabulka Objednávky a tabulka Zákazníci). Pomocí příkazu JOIN je lze spojit do jednoho výsledku.
Nejpoužívanější SQL databáze
Přestože je SQL standardem, různí výrobci mají své vlastní implementace (dialekty), které se mírně liší:
- MySQL / MariaDB: Nejpopulárnější open-source databáze, základ většiny webů (WordPress atd.).
- PostgreSQL: Pokročilá open-source databáze s důrazem na standardy a komplexní funkce.
- Microsoft SQL Server: Robustní řešení pro firemní prostředí v ekosystému Windows.
- SQLite: Lehká databáze uložená v jediném souboru, používaná v mobilních aplikacích (Android, iOS).
- Oracle Database: Špičkové a nákladné řešení pro kritické systémy velkých korporací a bank.
SQL vs. NoSQL
V posledních letech se vedle SQL prosadily i NoSQL databáze (např. MongoDB).
| Vlastnost | SQL (Relační) | NoSQL (Nereleleční) |
|---|---|---|
| Struktura | Pevně dané schéma (tabulky). | Flexibilní schéma (dokumenty, grafy). |
| Škálování | Vertikální (výkonnější server). | Horizontální (více levnějších serverů). |
| Vztahy | Výborné pro komplexní relace. | Vhodné pro nestrukturovaná data. |
| CAP | Obvykle upřednostňuje Konzistenci. | Často upřednostňuje Dostupnost. |
Související pojmy: Databáze, CRUD, JOIN, NoSQL, CAP teorém, MySQL, PostgreSQL, Indexování.
