Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013
Náplň cvičení Poddotazy Skupinové a souhrnné dotazy Rozšíření programu Videopůjčovna Databázové systémy I - cvičení č. 6 2
Poddotazy Vnořený dotaz je takový, jehož výstupní množina dat slouží jako vstup do dalšího dotazu. Vnořený dotaz musí být vždy uzavřen v závorkách (SELECT … ) Vnořený dotaz se provede vždy jako první Může být v hlavním dotazu umístěn: – za klauzuli FROM – za klauzuli WHERE – za klauzuli HAVING – případně v dalších částech (i v části bezprostředně za SELECT) Databázové systémy I - cvičení č. 6 3
Poddotazy - příklad Jméno zaměstnance, který má nejvyšší mzdu – Nejdříve musíme najít nejvyšší mzdu (poddotaz) a následně pracovníka, který ji má (hlavní dotaz) SELECT Jmeno FROM Pracovnici WHERE mzda = (SELECT max(Mzda) FROM Pracovnici) Poznámka: – Vnořený dotaz se provede Databázové systémy I - cvičení č. 6 4
In-line pohledy In-line pohledy jsou takové poddotazy, které mají alias. Vyskytují se za klauzlí WHERE SELECT * FROM (SELECT id,… FROM …) data WHERE data.id=17; Databázové systémy I - cvičení č. 6 5
In-line pohledy - příklad Zjistěte jméno zaměstnance, jeho funkci a o kolik má rozdílnou mzdu, než je průměrná mzda zaměstnanců se stejnou funkcí. SELECT Jmeno, Pracovnici.Funkce, Mzda - Pr_funkce.Pr_mzda AS Rozdil FROM Pracovnici JOIN (SELECT Funkce, AVG(Mzda) Pr_mzda FROM Pracovnici GROUP BY Funkce) Pr_funkce ON Pracovnici.Funkce = Pr_funkce.Funkce; Databázové systémy I - cvičení č. 6 6
7 Cvičení 9 – Samostatné 1.Zjistěte jméno členů, který si za dobu existence videopůjčovny, vypůjčil nejvíce DVD. Z dotazu vytvořte pohled s názvem v_nejvice_pujceno, pohled bude obsahovat sloupce jmeno, prijmeni, clenske_cislo. 2.Zjistěte všechny členy, kteří alespoň jednou v roce 2009 vrátili médium po termínu. Z dotazu vytvořte pohled s názvem v_clenove_po_terminu, pohled bude obsahovat sloupce jmeno, prijmeni, clenske_cislo. 3.Vypište seznam filmů, které byly vráceny po termínu. Standardní termín vrácení je následující den. Z dotazu vytvořte pohled s názvem v_filmy_po_terminu, pohled bude obsahovat jeden sloupec pojmenovaný nazev_filmu.
Databázové systémy I - cvičení č. 6 8 Cvičení 9 – Samostatné 4.Zjistěte číslo média, typ média a název filmu pro média, která byla půjčena nejdelší dobu. Výsledek seřaďte dle názvu filmu a typu média vzestupně. (můžete využít pohled z předchozího úkolu) Z dotazu vytvořte pohled s názvem v_medium_pujceno_nejdele, pohled bude obsahovat sloupce cislo_media, typ, nazev_filmu. 5.Zjistěte jména herců, kteří hrají ve filmech, které byly půjčeny nejvícekrát. Z dotazu vytvořte pohled s názvem v_herci_nej_pujceno, pohled bude obsahovat sloupec umelecke_jmeno.
Databázové systémy I - cvičení č. 6 9 Cvičení 9 – Samostatné 6.Do projektu Videopůjčovna doplňte: Formulář pro zobrazení seznamu zákazníků a vyhledávání v tomto seznamu podle příjmení a členského čísla Formulář pro zobrazení seznamu herců s vyhledávání podle uměleckého jména