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ů).
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. |
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.“
Jazyk SQL se dělí do několika podskupin podle jejich účelu:
SELECT, INSERT, UPDATE, DELETE).CREATE, ALTER, DROP).GRANT, REVOKE).
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.
Přestože je SQL standardem, různí výrobci mají své vlastní implementace (dialekty), které se mírně liší:
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í.