Toto je starší verze dokumentu!
Relační datový model a jazyk SQL
Jazyk SQL
SQL = structured query language, je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích
Příkazy e mohou více či méně lišit pro konkrétní databázi
SQL příkazy se dělí na čtyři základní skupiny:
Příkazy pro definici dat (CREATE, ALTER, DROP, …)
Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …)
Příkazy pro řízení přístupových práv (GRANT, REVOKE)
Příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK)
Ostatní nebo speciální příkazy
Příkazy pro definici dat
Lze označit jako DDL – Data Definition Language
CREATE - slouží pro vytváření nových objektů
- například: tabulku, index, pohled, proceduru
Vytvoření pohledu
CREATE VIEW <nazev pohledu>
AS
<SELECT prikaz>
Vytvoření indexu
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
INDEX <nazev indexu> ON <nazev tabulky nebo pohledu>(<nazev sloupce> [ASC | DESC]
[,...n])
ALTER - slouží pro upravení objektů
DROP - pro smazání objektů
Příkazy pro manipulaci s daty
Slouží pro manipulaci s daty.
DELETE - maže data z tabulky
DELETE from users where (age < 13)
UPDATE - aktualizuje data
UPDATE users set city = 'Brno', wtf = 'FIT' where (surname = 'Novák')
INSERT - vkládáme nová data
INSERT into users (name, surname, age) values ('Jiri', 'Janda', 22)
SELECT - nejčastější příkaz
V příkazu vybíráme s jakými sloupci v jaké tabulce (tabulkách) budeme pracovat a dale podminku která řádky mají být zpracovány.
nejkomplikovanější příkaz, má spoustu volitelných podčástí
where - společný i pro ostatní kromě insertu. Obsahuje podmínky, mohou se spojovat and / or, používat závorky atd.
group by - Seskupení záznamů znamená, že shrneme informace několika záznamů do jednoho záznamu. K tomuto používáme GROUP BY, za kterým uvedeme název sloupce, podle kterého se mají záznamy seskupit (všechny záznamy, které mají stejnou hodnotu tohoto sloupce, se sloučí do jednoho záznamu).
having - je velmi podobná podmínce WHERE. Rozdíl je v tom, že podmínka WHERE omezuje ještě neseskupené záznamy a podmínka HAVING omezuje seskupené záznamy. Další rozdíl je, že podmínka HAVING se musí týkat sloupce, který má konstantní hodnotu a nebo agregační funkce. Př. (HAVING `pocet` > 5)
order by - specifikuje, podle čeho budou výstupní data seřazena - sloupec asc / desc
distinct Uvedením klíčového slova DISTINCT se eliminují duplicitní řádky „Ze kterých měst jsou klienti spořitelny?“ SELECT DISTINCT město FROM Klient
Transakce a prava jsme prakticky neprobírali.
Spojování tabulek - operace join
Slouží ke spojování výsledku dotazu SELECT ze dvou vstupních množin (typicky tabulek relační databáze).
Diskuze