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