Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Databázové systémy Přednáška č. 6.

Podobné prezentace


Prezentace na téma: "Databázové systémy Přednáška č. 6."— Transkript prezentace:

1 Databázové systémy Přednáška č. 6

2 Jazyk SQL Databázový jazyk by měl uživateli umožnit:
Vytvoření struktury databáze Vkládání, modifikaci a odstranění dat z databáze Realizaci dotazů Musí realizovat tyto úkoly s minimální námahou pro uživatele

3 Jazyk SQL Structured Query Language (SQL)
Je neprocedurální jazyk – specifikuje pouze co potřebujeme získat a ne jak to získat Má 2 hlavní komponenty: DDL pro definování datové struktury DML pro vyhledávání a úpravu dat Neobsahuje řídící příkazy – ty musí být implementovány v rámci programovacího jazyka nebo interaktivně uživatelem

4 Jazyk SQL Historie jazyka SQL
1974 – D. Chamberlin definoval jazyka zvaný „Structured English Query Language“ or SEQUEL 1976 – definována revidovaná verze SEQUEL/2 – jméno se změnilo na SQL IBM implementovala prototyp DBMS – System R, založený na SEQUEL/2 Konec 70tých let – ORACLE s prvním komerčním RDBMS založeným na SQL

5 Jazyk SQL 1987 – ANSI a ISO – první standard SQL
1989 – ISO publikoval dodatek, který definoval ‘Integrity Enhancement Feature’ 1992 – první velká revize ISO standardu – SQL2 resp. SQL/92 SQL is Federal Information Processing Standard (FIPS) – všechny databáze pro federální vládu musí splňovat standard SQL

6 Zaměstnanec N 1 N kontroluje Pracuje v Garantuje N N N viděl 1 N Nemovitost Klient N Má pronajatu Pobočka 1 N N 1 Vlastní Nabízí 1 Vlastník

7 Jazyk SQL – příkaz SELECT
SELECT [DISTINCT | ALL] {* | seznam_výstupních_sloupců [AS nové_jméno]} FROM seznam_tabulek [alias] [...] [WHERE podmínka_řádku] [GROUP BY seznam_výrazů_seskupení] [HAVING podmínka_skupiny] [ORDER BY seznam_kritérií_třídění ASC |DESC]

8 Jazyk SQL – příkaz SELECT
definice sloupců ve výsledku pomocí AS se specifikuje název záhlaví sloupců podle použitého modifikátoru budou z výsledku vyloučeny duplicitní řádky (DISTINCT), nebo jsou vybrány všechny (ALL)

9 Jazyk SQL – příkaz SELECT
FROM seznam tabulek, ze kterých jsou získávány požadované informace při definici dotazu není možné použít sloupce z jiných než ze zde uvedených tabulek pomocí klíčového slova ALIAS (nepovinné) lze pojmenovat vyjmenované tabulky zástupným jménem, na které se potom odkazujeme v dalším zpracování

10 Jazyk SQL – příkaz SELECT
WHERE omezení zpracovávaných řádků pomocí podmínky (tj. filtrace řádků) pouze řádky, pro které je tato podmínky splněna jsou dále zpracovávány GROUP BY definice výrazů, podle kterých jsou řádky seskupeny vytváří skupiny řádků se stejnou hodnotou v daném sloupci

11 Jazyk SQL – příkaz SELECT
HAVING omezení souhrnných řádků definovaných pomocí GROUP BY ve výsledku – pouze souhrnné řádky, pro které je zde uvedená podmínky splněna jsou zařazeny do výsledku filtruje skupiny podle dané podmínky

12 Jazyk SQL – příkaz SELECT
ORDER BY setřídění řádků ve výsledku řádky mohou být setříděny vzestupně (ASC) nebo sestupně (DESC) implicitně jsou řádky setříděny vzestupně (ASC se nemusí zadávat)

13 Jazyk SQL – příkaz SELECT
Všechny příklady se vztahují k databázi realitní kanceláře uvedené na snímku 6 Zobraz všechny informace o všech zaměstnancích: SELECT c_zam, jmeno, prijmeni, adresa, tel_c, prac_zar, rod_c, c_pob, plat FROM zaměstnanec nebo alternativně SELECT * FROM zaměstnanec znak * se používá jako zkratka pro ‘všechny sloupce’

14 Jazyk SQL – příkaz SELECT
Zobrazte seznam pracovníků a jejich platy: SELECT jmeno, prijmeni, plat FROM zamestnanec Zobrazte čísla nemovitostí, které si některý klient prohlédl: SELECT c_nem FROM prohlidka SELECT DISTINCT(c_nem) FROM prohlidka DISTINCT eliminuje duplicity

15 Jazyk SQL – příkaz SELECT
Vypište seznam pracovníků a pro každého uveďte výši ročního platu: SELECT jmeno, prijmeni, plat*12 AS rocni_plat FROM zamestnanec Vypište všechny informace o zaměstnancích s platem větším jak Kč: SELECT * FROM zamestnanec WHERE plat > 10000

16 Jazyk SQL – příkaz SELECT
Zobraz údaje o pobočkách se sídlem v Praze nebo v Brně: SELECT * FROM pobocka WHERE mesto=‘Praha’ OR mesto=‘Brno’

17 Jazyk SQL – příkaz SELECT
Zobrazte údaje o zaměstnancích s platem v rozmezí 9000 – Kč: SELECT * FROM zamestnanec WHERE plat BETWEEN 9000 AND 12000 BETWEEN zahrnuje i krajní body intervalu, lze používat i negaci NOT BETWENN. BETWEEN lze vyjádřit následovně: WHERE plat>=9000 AND plat <=12000

18 Jazyk SQL – příkaz SELECT
Zobraz údaje o všech managerech a tajemnících: SELECT * FROM zamestnanec WHERE prac_zar IN (‘manager’, ‘tajemnik’) Je možno použít i negaci (NOT IN). IN lze vyjádřit následovně: WHERE prac_zar=‘manager’ OR prac_zar=‘tajemnik’

19 Jazyk SQL – příkaz SELECT
Najdi zaměstnance, kteří mají v adrese Ostravu: SELECT * FROM zamestnanec WHERE adresa LIKE ‘%Ostrava%’ SQL má dva speciální symboly: % : posloupnost nula nebo více znaků _ : libovolný jeden znak LIKE ‘%Ostrava%’ znamená posloupnost znaků libovolné délky, která obsahuje řetězec “Ostrava”

20 Jazyk SQL – příkaz SELECT
Zobraz detaily všech prohlídek, kde není zaznamenána žádná poznámka: SELECT * FROM prohlidka WHERE poznamka IS NULL Zobraz seznam zaměstnanců dle výše platu, od nejvyššího: SELECT jmeno, prijmeni, plat FROM zamestnanec ORDER BY plat DESC

21 Jazyk SQL – příkaz SELECT
Seřaď nemovitosti dle typu a výše nájmu: SELECT * FROM nemovitost ORDER BY typ, nájem


Stáhnout ppt "Databázové systémy Přednáška č. 6."

Podobné prezentace


Reklamy Google