Studia dzienne Systemy przetwarzanie i baz danych II Pracownia
Transkrypt
Studia dzienne Systemy przetwarzanie i baz danych II Pracownia
Studia dzienne Systemy przetwarzanie i baz danych II Pracownia specjalistyczna nr 3 Temat: Tworzenie prostych bloków PL/SQL Zad 1 Utwórz tabel komunikat, która b dzie składa si z dwóch kolumn tekstowych (po 15 znaków ka da) oraz z jednej kolumny numerycznej. Zad 2 Napisa blok PL/SQL, który sprawdzi ile ksi ek wydał wydawca o identyfikatorze = 1. Nazw wydawcy oraz liczb ksi ek nale y zapisa w tabeli komunikat. Zad 3 Napisa blok PL/SQL, który sprawdzi tytuł najdro szej i najta szej ksi ki. Informacje o tytułach i cenach nale y zapisa w tabeli komunikat. Zad 4 Stworzy tabel ksiazka_tmp b d c kopi tabeli t_ksiazka. Napisa blok PL/SQL, który zmodyfikuje cen danej ksi ki (w tabeli ksiazka_tmp!!!) w zale no ci od jej bie cej ceny. Je li cena > 30 wówczas cena powinna wzrosn o 10% Je li cena > 20 wówczas cena powinna wzrosn o 14% Je li cena <= 20 wówczas cena powinna wzrosn o 16% Zad 5 Napisa blok PL/SQL, który sprawdzi ilo ksi ek w ramach ka dego zamówienia. Nale y do tabeli komunikat przesła nast puj ce informacje: id_zamowienia oraz ilo ksi ek dla tego zamówienia. Zad 6 Stworzy blok PL/SQL, w którym wybrane zostałyby tytuły dwóch najdro szych ksi ek. Przykład: "Potop" 100 "Zemsta" 90 "Zbrodnia i kara" 100 "Lesio" 50 Wynikiem sa tytuły: "Potop", "Zemsta", "Zbrodnia i kara" poniewaz 100 i 90 s dwiema najwy szymi cenami. Tytuł ksi ki wraz z cen powinny sie znale w tabeli komunikat. Zad 7 Usun utworzone tabele: komunikat i ksiazka_tmp. Pomoc: Definicja anonimowego bloku PL/SQL [DECLARE nazwa_zmiennej typ_danych; ....] BEGIN instrukcje; [EXCEPTION obsługa wyj tków] END; Znak ‘/’ uruchamia blok PL/SQL Deklaracje zmiennych: nazwa_zm typ_zmiennej; //typ zmiennej np.: NUMBER, VARCHAR2 nazwa_zm nazwa_tabeli.nazwa_kolumny%type; //zmienna ma typ zgodny z typem kolumny: nazwa_tabeli.nazwa_kolumny nazwa_zm nazwa_tabeli%rowtype; //utworzenie rekordu zawieraj ce składowe i typty jak w tabeli: //nazwa_tabeli Instrukcje: Instrukcja SELECT INTO SELECT kol1, kol2, ... INTO zmienna1, zmienna2,... FROM n_tabeli ......... Wyrazenie SELECT INTO zwraca jeden wiersz i wstawia go do zdefiniowanych zmiennych Kursory Skupia wiele wierszy wybranych na podstawie wyra enia SELECT – mo e zwraca wiele wierszy a)niejawny FOR i IN (WYR_SELECT) LOOP instrukcje; END LOOP; b)jawny Deklaracja CURSOR n_kursora (parametry) IS WYR_SELECT; (w sekcji deklaracyjnej bloku) Otwieranie kursora OPEN n_kursora(parametry); Pobieranie danych z kursora FETCH n_kursora INTO zmienna (zmienne); Zamykanie kursora CLOSE n_kursora; lub FOR i IN n_kursora LOOP ..... END LOOP; - w tym przypadku nie trzeba polecen OPEN, FETCH, CLOSE; FOR otwiera i pozniej zamyka kursor; FETCH niepotrzebne - pod zmienna „i” automatycznie podstawiane sa wyniki zapytania Inne instrucje: INSERT UPDATE DELETE