Jazyk SQL (rozdělení SQL, příkaz SELECT, projekce, restrikce, agregace, druhá restrikce)
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
PAD Programování a databáze
Téma 13
Školní rok 2017/2018
1/2
Jan Švábík, V4D
Jazyk SQL (rozdělení SQL, příkaz SELECT,
projekce, restrikce, agregace, druhá restrikce)
Jazyk SQL
Strukturovaný dotazovací jazyk (Structured Query Language). Vyvinula jej firma IBM. Jedná se
o neprocedurální jazyk – sdělujeme, co chceme získat, ale ne jak. Dotaz i odpověď jsou textové
řetězce. Nezáleží na velikosti písmen příkazů. Jazyk lze s menšími změnami použít ve většině
databázových systémů (Oracle, SQL Server, MySQL, Postgre).
Dotazy mohou vést k vytváření nových databází, tabulek, indexů, pohledů, triggerů, procedur,
uvedené struktury mohou dotazy modifikovat, rušit nebo aktualizovat hodnoty dat v tabulkách.
Rozdělení SQL
DDL
Data Definition Language. Definice struktur, vytváření a rušení objektů a změna jejich struktury.
Patří sem příkazy CREATE DATABASE/TABLE/INDEX/VIEW/SEQUENCE, ALTER TABLE/VIEW/SEQUENCE,
DROP TABLE/INDEX/VIEW
, …
DML
Data Manipulation Language. Umožňuje výběr, vkládání, mazání řádků a aktualizace. Patří sem
příkazy SELECT, INSERT, DELETE a UPDATE.
DCL
Data Control Language. Speciální příkazy pro řízení provozu a údržbu databáze či např. změnu
uživatelských privilegií. Příkazy CREATE/ALTER/DROP USER, GRANT, REVOKE.
Příkaz SELECT
Příkaz SELECT umožňuje z databáze vybrat/načíst nějaká data. Jeho základní syntaxe je:
SELECT popis projekce
FROM tabulka
WHERE podmínka restrikce řádků
GROUP BY klíč agregace
HAVING podmínka restrikce skupiny
ORDER BY klíč třídění;
Projekce
Projekce je ve své podstatě určení dat, která se mají vybrat – může např. obsahovat jednotlivé názvy
sloupců v tabulce oddělené čárkami, jejichž hodnoty mají být načteny nebo znak * určující, že se
mají vybrat hodnoty ze všech sloupců. Do projekce je možné přidat také návratovou hodnotu
vykonané agregační funkce. Ve výsledku může projekční část SQL řetězce vypadat například
následovně: