kbd_3(1).pdf
(
137 KB
)
Pobierz
kbd_3.dvi
KBD2—Komercyjnebazydanych
drin». TomaszTraczyk
3. J¦zykPL/SQL
Listopad2007
Copyright
c
·
TomaszTraczyk
Instytut Automatyki iInformatykiStosowanej PolitechnikiWarszawskiej
Materiałydydaktyczne przeznaczone s¡wył¡czniedoindywidualnegou»ytkustudiuj¡cych.
Rozpowszechnianie kopiibezpisemnejzgodyautorajestzabronione.
Streszczenie
Wykład przedstawia j¦zyk PL/SQL stosowany w Oracle do programowania pro-
ceduralnego po stronie serwera i po stronie klienta — w aplikacjach tworzonych za
pomoc¡narz¦dziForms/Reports.
'
$
J¦zyk PL/SQL
•
Proceduralny j¦zyk programowania
•
Nie¹le zintegrowany z SQL
•
Zastosowanie
–
Programowanie proceduralne po stronie DBMS: wyzwalacze, składowane w bazie danych
procedury, funkcje i pakiety
–
Pomocnicze programowanie w narz¦dziach Forms i Reports
•
Cechy
–
całkowita przeno±no±¢
–
brak transmisji sieciowych
–
interpretowany - spore zu»ycie zasobów serwera
–
istnieje mo»liwo±¢ kompilacji do kodu maszynowego
&
%
1
'
$
Podstawowe konstrukcje
•
J¦zyk strukturalny
•
Budowa blokowa
•
Format
•
Instrukcja podstawienia
–
posta¢:
zmienna:= wyra»enie;
–
niezb¦dne konwersje typów — automatyczne
•
Bloki
–
bloki nazwane, czyli moduły
wyzwalacze
procedury
funkcje
pakiety
–
bloki anonimowe
–
bloki podrz¦dne
&
%
2
'
$
<<
etykieta
_
bloku
>>
DECLARE
deklaracje
;
BEGIN
ciało
;
EXCEPTION
obsługa wyj¡tków
;
END;
•
Etykieta, cz¦±ci
DECLARE
i
EXCEPTION
— opcjonalne
•
W głównym bloku słowo
DECLARE
pomija si¦
•
Zagnie»d»anie bloków
Budowa bloku
&
%
'
$
Dane
•
Stałe i zmienne musz¡ by¢ deklarowane
•
Deklaracje stałych:
nazwa stałejCONSTANT typ :=wyra»enie;
•
Deklaracje zmiennych:
nazwa zmiennej typ
[
NOT NULL
[
:=wyra»enie
]]
;
–
zamiast
:=
mo»na u»y¢
DEFAULT
–
zmienna niezainicjowana ma warto±¢
NULL
–
deklarowanie zmiennej o typie zgodnym z kolumn¡:
nazwa zmiennej
nazwa tabeli.nazwa kolumny%TYPE
–
deklarowanie zmiennej o typie identycznym wcze±niej zadeklarowan¡ zmienn¡:
nazwa nowej zmiennej nazwa starej zmiennej%TYPE
&
%
3
'
$
Proste typy danych
•
Wszystkie typy dopuszczalne dla kolumn
•
BINARY INTEGER
– „szybki” typ numeryczny 32 bitowy
–
NATURAL
– liczby nieujemne
–
POSITIVE
– liczby dodatnie
•
BOOLEAN
– typ logiczny (stałe
TRUE
i
FALSE
)
&
%
'
$
Zło»one typy danych
Tablice
•
Tablice
index-by
–
deklaracja typu:
TYPEnowy typIS TABLE OF typ prostyINDEX BY BINARY INTEGER;
–
deklaracja zmiennej — przy u»yciu nazwy zdefiniowanegotypu
–
odwołanie do komórki
zmienna tablicowa(indeks)
•
Inne typy tablicowe:
nestedtables
i
varrays
!
pó¹niej
&
%
4
'
$
Rekordy
•
Deklaracja:
TYPE nowy typ IS RECORD (lista deklaracji pól);
•
Deklaracje pól — jak deklaracje zmiennych
•
Dozwolone zagnie»d»anie pól wcze±niej zdefiniowanych typów rekordowych
•
Deklaracja zmiennej — przy u»yciu nazwy zdefiniowanegotypu
•
Deklaracja rekordu o strukturze wiersza tabeli:
nazwa zmiennej nazwa tabeli%ROWTYPE;
•
Odwołania do pól:
nazwa zmiennej rekordowej.nazwa pola
DECLARE
TYPE rekord IS RECORD (
deklaracja typu
ocena NUMBER(3,1),
wykladowca wykladowcy%ROWTYPE
zagnie»d»ona struktura rekordowa
);
zapis rekord;
deklaracja zmiennej typu rekordowego
BEGIN
zapis.wykladowca.id_wykladowcy := 1;
odwołanie do pola zagnie»d»onego rekordu
...
END;
&
%
'
$
Instrukcje steruj¡ce
•
Instrukcja pusta:
NULL;
•
Instrukcja warunkowa:
IF warunek THEN
instrukcje
ELSIF
instrukcje
ELSE
instrukcje
END IF;
•
P¦tle
–
z ka»dej p¦tli mo»liwy wyskok instrukcj¡
EXIT
[
etykieta
] [
WHENwarunek
]
;
–
etykiety umo»liwia wyskok przez kilka
poziomów, do p¦tli poprzedzonej:
<<etykieta>>
•
P¦tla bezwarunkowa:
LOOP
instrukcje
END LOOP;
•
P¦tla warunkowa:
WHILE
warunek
LOOP
instrukcje
END LOOP;
•
P¦tla wyliczana:
FOR
licznik
IN
pocz¡tek
..
koniec
LOOP
instrukcje
END LOOP;
&
%
5
Plik z chomika:
tryniti
Inne pliki z tego folderu:
SQL.doc
(281 KB)
plsql_fsql.ppt
(62 KB)
SQL10G.pdf
(780 KB)
sql2.pdf
(224 KB)
plsql.pdf
(580 KB)
Inne foldery tego chomika:
algebra liniowa
algorytmy i struktury danych
analiza matematyczna
angol
architektura komputerow
Zgłoś jeśli
naruszono regulamin