Przykładowe zadania na kolokwium (PL/SQL)staff.uz.zgora.pl/garkit/bd2/kolo-plsql.pdf ·...

1
Przykładowe zadania na kolokwium (PL/SQL) wszystkie zadania oparte o schemat przekopiowany z bazy Firebird (employee): 1. Funkcje operujące na danych: napisać funkcję, która zwraca (przykładowo): a) średnią zarobków w podanym dziale, b) listę nazwisk (posortowaną alfabetycznie) pracowników z danego działu, c) listę działów, które podlegają bezpośrednio pod dany dział, posortowaną wg budżetów. d) Zadania należy wykonać „na piechotę” nie korzystając z wbudowanych funkcji agregujących – wykorzystanie kursorów, w tym kursorów z parametrem (where) 2. Procedury operujące na danych – procedury wykonujące operacje na danych a) SELECT (INTO) b) INSERT, UPDATE, DELETE, c) INSERT … SELECT …. d) także z wykorzystaniem dodatkowych operacji poza procedurami (np. utworzenie tabeli) e) np. utworzyć nową tabelę E2 jako kopie (bez danych) tablicy EMPLOYEE (CREATE TABLE E2 AS SELECT * FROM EMPLOYEE WHERE 0=1), dodać do niej kolumnę HIRE_DATE_STR (tekstowa) a następnie napisać (utworzyć) procedurę, która skopiuje (za pomocą kursora) dane z tablicy EMPLOYEE a następnie (też za pomocą kursora) w kolumnie HIRE_DATE_STR wpisze tekstową reprezentację daty (TO_CHAR) z kolumny HIRE_DATE (w dowolnym, wybranym formacie). utworzyć nową tabelę E2 jako kopie (z danymi) tablicy EMPLOYEE (CREATE TABLE E2 AS SELECT * FROM EMPLOYEE) a następnie utworzyć procedurę, która z tabeli E2 usunie pracowników, którzy zarabiają co najmniej 100 000, a dla pozostałych pracowników (za pomocą kursora) przeliczy ich zarobki na złotówki (po aktualnym kursie dolara na dzień wykonywania testu) 3. Wyzwalacze (przy testowaniu należy wykonywać jeden wyzwalacz – pozostałe usuwamy): a) utworzyć wyzwalacz, który przy dodawaniu lub aktualizacji pracownika zaokrągli wartość zarobków w górę do wielokrotności 100. b) napisać wyzwalacz, który przy każdej aktualizacji lub dodawaniu pracownika w polu FULL_NAME wstawi prawidłową wartość (LAST_NAME, FIRST_NAME) c) napisać wyzwalacz, który przy wstawianiu lub aktualizacji pracownika, jeżeli będziemy próbowali dodać JOB_COUNTRY = PL, to wyrzuci błąd (czyli nie pozowoli nam wstawić rekordu z JOB_COUNTRY = PL)

Transcript of Przykładowe zadania na kolokwium (PL/SQL)staff.uz.zgora.pl/garkit/bd2/kolo-plsql.pdf ·...

Page 1: Przykładowe zadania na kolokwium (PL/SQL)staff.uz.zgora.pl/garkit/bd2/kolo-plsql.pdf · Przykładowe zadania na kolokwium (PL/SQL) wszystkie zadania oparte o schemat przekopiowany

Przykładowe zadania na kolokwium (PL/SQL) wszystkie zadania oparte o schemat przekopiowany z bazy Firebird (employee):

1. Funkcje operujące na danych: napisać funkcję, która zwraca (przykładowo): a) średnią zarobków w podanym dziale, b) listę nazwisk (posortowaną alfabetycznie) pracowników z danego działu, c) listę działów, które podlegają bezpośrednio pod dany dział, posortowaną wg budżetów. d) Zadania należy wykonać „na piechotę” nie korzystając z wbudowanych funkcji

agregujących – wykorzystanie kursorów, w tym kursorów z parametrem (where) 2. Procedury operujące na danych – procedury wykonujące operacje na danych

a) SELECT (INTO) b) INSERT, UPDATE, DELETE, c) INSERT … SELECT …. d) także z wykorzystaniem dodatkowych operacji poza procedurami (np. utworzenie tabeli) e) np.

• utworzyć nową tabelę E2 jako kopie (bez danych) tablicy EMPLOYEE (CREATETABLE E2 AS SELECT * FROM EMPLOYEE WHERE 0=1), dodać do niejkolumnę HIRE_DATE_STR (tekstowa) a następnie napisać (utworzyć) procedurę,która skopiuje (za pomocą kursora) dane z tablicy EMPLOYEE a następnie (też zapomocą kursora) w kolumnie HIRE_DATE_STR wpisze tekstową reprezentacjędaty (TO_CHAR) z kolumny HIRE_DATE (w dowolnym, wybranym formacie).

• utworzyć nową tabelę E2 jako kopie (z danymi) tablicy EMPLOYEE (CREATETABLE E2 AS SELECT * FROM EMPLOYEE) a następnie utworzyć procedurę,która z tabeli E2 usunie pracowników, którzy zarabiają co najmniej 100 000, a dlapozostałych pracowników (za pomocą kursora) przeliczy ich zarobki na złotówki (poaktualnym kursie dolara na dzień wykonywania testu)

3. Wyzwalacze (przy testowaniu należy wykonywać jeden wyzwalacz – pozostałe usuwamy): a) utworzyć wyzwalacz, który przy dodawaniu lub aktualizacji pracownika zaokrągli

wartość zarobków w górę do wielokrotności 100. b) napisać wyzwalacz, który przy każdej aktualizacji lub dodawaniu pracownika w polu

FULL_NAME wstawi prawidłową wartość (LAST_NAME, FIRST_NAME) c) napisać wyzwalacz, który przy wstawianiu lub aktualizacji pracownika, jeżeli będziemy

próbowali dodać JOB_COUNTRY = PL, to wyrzuci błąd (czyli nie pozowoli namwstawić rekordu z JOB_COUNTRY = PL)