Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013
Náplň cvičení Operace INSERT, UPDATE a DELETE v Javě. Rozšíření aplikace Videopůjčovna. Korelované vnořené dotazy. Databázové systémy I - cv. č. 10 2
Zadání cvičení Rozšiřte formulář evidence Filmů, tak aby bylo možné: – Přidat nový film. – Upravit existující film. – Vymazat vybraný film. Databázové systémy I - cv. č. 10 3
Provázání komponent Po výběru příslušného filmu z tabulky filmů je nutné zajistit naplnění příslušných textových polí. – Vhodné ošetřit přes událost mouseClicked tabulky filmů. Databázové systémy I - cv. č. 10 4
Provázání komponent Naplnění příslušných textových polí Pozor: Metoda getValueAt indexuje sloupce a řádky od 0. Databázové systémy I - cv. č. 10 5
Operace INSERT, UPDATE a DELETE Rozdíly oproti provedení příkazu SELECT. – Spuštění se již neporvádí přes executeQuery, ale přes metodu executeUpdate objektu typu rozhraní Statement/PrepareStatement. – Provedené změny se potvrzují metdou commit objektu typu rozhraní Connection. Databázové systémy I - cv. č. 10 6
Operace INSERT, UPDATE a DELETE Příklad příkazu UPDATE využívající rozhraní PreparedStatement. Databázové systémy I - cv. č. 10 7
Korelované vnořené dotazy Jedná se o vnořené dotazy obsahující hodnotu vnějšího dotazu. – Tato hodnota je dostupná pomocí aliasu. Klasický nekorelovaný vnořený dotaz se provede jen jednou. – Korelovaný vnořený dotaz se vyhodnocuje opakovaně pro každý řádek vnějšího dotazu. Databázové systémy I - cv. č. 10 8
Korelované vnořené dotazy Výše uvedený dotaz vypíše zaměstnance, kteří na dané pracovní pozici pobírají nejvyšší mzdu. Databázové systémy I - cv. č. 10 9
Příklady - samostatně Následující příklady vyřešte pomocí korelovaných vnořených 1.Vytvořte pohled NO_VHS_MEDIUM(nazev), který vypíše všechny filmy, jenž nejsou distribuovány na VHS. Jsou tedy distribuovány výhradně na DVD. 2.Vytvořte pohled NEPUJCENA_MEDIA(id_medium, format, nazev), který bude obsahovat seznam všech medií, která nebyla nikdy vypůjčena. U každého media se vypíše jeho id, typ a název filmu, který medium obsahuje. Databázové systémy I - cv. č
Příklady - samostatně 3.Vytvořte pohled KATEGORIE_10_PROCENT(nazev, kategorie, pocet_vypujcek). Pohled bude vypisovat informace názvu filmu, o kategorii a počtu vypůjčení daného filmu v celé historii videopůjčovny. Ve výpise se ale objeví jen ty filmy, jejichž počet výpůjček přesáhl alespoň deset procent ze všech výpůjček filmů v dané kategorii. 4.Vytvořte pohled TOP_CLEN_ZEME(jmeno, prijmeni, stat, pocet_vypujcek). Pohled vypíše informace o členovi (jméno, příjmení, stát) spolu s informací o počtu výpůjček, které daný člen v historii udělal. Vypíší se jen ti členové, jenž v rámci svého státu učinili nejvíce výpůjček. Databázové systémy I - cv. č
Příklady - samostatně 5.Vytvořte pohled TOP_MEDIUM_FILM(nazev, format, pocet_vypujcek). Pohled bude vypisovat názvy filmů spolu s informaci o tom, kolikrát a v jakém formátu byl daný film vypůjčen. U každého filmu se objeví je ten typ média, který byl půjčen vícekrát (v rámci celé historie videopůjčovny). Databázové systémy I - cv. č