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

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

Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.

Podobné prezentace


Prezentace na téma: "Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice."— Transkript prezentace:

1 Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice

2 Obsah cvičení -Opakování ze cvičení 3 -Kombinace vnitřního a vnějšího spojení -NULL hodnota -Využití logických operátorů -Rozsahový test (BETWEEN) -Výrazy Databázové systémy 1 – cvičení 3 2

3 Databázové systémy 1 – cvičení 4 3 Cvičení 3 – Schéma A_SKOLA

4 NULL hodnota Hodnota NULL signalizuje absenci hodnoty. NULL hodnota není skutečná datová hodnota. Spíše se jedná o indikátor prázdné nebo neznámé hodnoty. Hodnota NULL není porovnatelná s žádnou jinou datovou hodnotou. – NULL hodnota není dokonce porovnatelná s jinou NULL hodnotou. Databázové systémy 1 – cvičení 4 4

5 NULL hodnota (vyhledávaní) Nelze porovnávat přímo s jinou hodnotou. Příkaz: – Nikdy nevrátí žádné řádky (i když v tabulce existují řádky obsahující NULL hodnotu ve sloupci ID_STUDENTA ). – Výsledkem porovnaní totiž není logická hodnota TRUE ani FALSE, nýbrž hodnota NULL. Pro nalezení záznamu s NULL hodnotou je nutné použít operátoru IS NULL : Databázové systémy 1 – cvičení 4 5

6 NULL hodnota (vyhledávaní) Alternativně nefunguje ani vyhledávaní záznamů, které neobsahují NULL hodnotu: V tomto případě je nutné použít operátor IS NOT NULL : Databázové systémy 1 – cvičení 4 6 http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements005.htm

7 NULL hodnota (nahrazení) Někdy může být užitečné převést NULL hodnoty ve sloupcích na nějakou konkrétní hodnotu. K tomu slouží funkce NVL : – NVL ( vyraz, nahradni-vyraz ) Funkce testuje hodnotu vyraz. Pokud výraz obsahuje NULL hodnotu, funkce provede záměnu za nahradni-vyraz. Pokud vyraz neobsahuje NULL hodnotu, funkce vrátí vyraz. Pozor na datové typy. – Nelze například testovat číselný typ a nahrazovat jej řetězcem. Databázové systémy 1 – cvičení 4 7

8 NULL hodnota (nahrazení) Databázové systémy 1 – cvičení 4 8 http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions110.htm

9 Rozsahový test (BETWEEN) Rozsahový test ověří, zdali testovaná hodnota leží mezi dvěma specifikovanými hodnotami. Test BETWEEN má následující syntaxi: – expr1 - vyhodnocovaný výraz. – NOT - neguje výsledek testu. ( volitelný ) – expr2 - výraz specifikující dolní hranici testovaného intervalu – expr3 - výraz specifikující horní hranici Databázové systémy 1 – cvičení 4 9

10 Rozsahový test (BETWEEN) Příklad rozsahového testu: V podstatě se jedná o zjednodušený zápis následující podmínky: Oba zápisy jsou z pohledu výsledku rovnocenné. Databázové systémy 1 – cvičení 4 10 http://docs.oracle.com/cd/B28359_01/server.111/b28286/conditions011.htm

11 Cvičení 4 – Příklady 1.Vypište studentovo jméno a příjmení spolu s názvem knihy, kterou má student půjčenou. Ve výpise se objeví jen studenti učitele s příjmením „Bílý“. Výstup bude seřazen dle příjmení studenta. 2.Pomocí vnějšího spojení, vypište obsah tabulek UCITELE a UCI. Následně dalším vnějším spojením připojte tabulku STUDENTI. a)Modifikujte příklad tím, že vnější spojení mezi tabulkami UCI a STUDENTI nahradíte spojením vnitřním. Porovnejte výsledky obou příkladů. 3.Vypište jména a příjmení studentů, jenž nemají zapsaný žádný předmět. Zároveň přidejte navíc sloupec pojmenovaný stav, ve kterém se u každého jména zobrazí řetězec „Nezapsán“. 4.Vypište jména a příjmení všech studentů, kteří studují předmět „Databáze“, zároveň ale nemají vypůjčenu žádnou knihu. 5.Vypište id_knihy, její název a příjmení studenta, který má tuto knihu vypůjčenou. Ve výpise se zároveň objeví i knihy, které nejsou vypůjčeny. U těchto knih bude ve sloupci příjmení uveden text „VOLNÁ“. Databázové systémy 1 – cvičení 4 11

12 Cvičení 4 – Příklady 6.Pomocí vnějšího spojení vypište obsah tabulek STUDENTI, UCITELE, UCI a KNIHY. Důležité je, aby na výstupu byli obsaženi všichni studenti. 7.Vypište jméno a přímení studenta, kterého buď učí učitel s id_ucitele v rozmezí 2 až 4 (včetně) nebo má tento student vypůjčenu knihu s id_knihy v rozmezí 3015 až 3018 (včetně). Databázové systémy 1 – cvičení 4 12

13 Cvičení 4 - pohledy 1.Vytvořte pohled cv4_studenti ( jmeno, prijmeni ), který zobrazí studenty, které učí jeden z dua učitelů „ Bílý“ nebo „Kolenský“ a zároveň máji tito studenti vypůjčenu knihu „Fyzika 1“ nebo „Fyzika 3“. 2.Vytvořte pohled cv4_ucitele ( jmeno, prijmeni ), který vypíše učitele, kteří buďto neučí žádného studenta nebo vypíše učitele, kteří učí studenta se jménem „Jan Vrtoch“. 3.Vytvořte pohled cv4_knihy ( id_knihy, nazev_knihy, prijmeni ). Pohled bude obsahovat kromě id_knihy a jejího názvu i příjmení studenta, který má knihu půjčenou. Pokud nebude kniha vypůjčena, objeví se ve sloupci prijmeni text „VOLNÁ“. 4.Vytvořte pohled cv4_studenti_j ( jmeno, prijmeni, predmet ), který zobrazí studenty, jejichž jméno začíná písmenem „J“ a současně navštěvují předměty vyučované učitelem s id_ucitele v rozmezí 2 až 7 včetně. Databázové systémy 1 – cvičení 4 13

14 Databázové systémy 1 – cvičení 4 14 Cvičení 4 - pohledy 5.Vytvořte pohled cv4_studenti_prijmeni ( id_studenta, jmeno, prijmeni ), který zobrazí studenty, kteří splňují všechny následující podmínky – Mají zapsaný předmět „Databáze“. – Mají půjčenu knihu „Základy SQL“. – Vyučuje je učitel „Jan Bílý“. 6.Vytvořte pohled cv4_studenti_db_null ( jmeno, prijmeni, nazev_predmetu, nazev_knihy ), který vypíše studenty splňující obě následující podmínky: – Student nemá půjčenou žádnou knihu nebo má půjčenou knihu „Návrh databáze“. – Student nemá zapsaný žádný předmět nebo má zapsán předmět „Databáze“.

15 Cvičení 4 – Zásady vypracování Všechny příklady budou vypracovány nad schématem A_SKOLA. Všechny databázové objekty z tohoto cvičení vytvořte se svém schématu. Pro splnění cvičení je nutné, aby všechny objekty byly správně vytvořeny a funkční do půlnoci dne před následujícím cvičením. Databázové systémy 1 – cvičení 4 15


Stáhnout ppt "Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice."

Podobné prezentace


Reklamy Google