Wyzwalacze TWORZENIE WYZWALACZY
|
|
- Dorota Owczarek
- 9 lat temu
- Przeglądów:
Transkrypt
1 Wyzwalacze: podobnie jak procedury i funkcje, są nazwanymi blokami PL/SQL zawierającymi sekcje deklaracji, wykonania i obsługi wyjątków; nie akceptują argumentów; muszą być składowane jako samodzielne obiekty w bazie danych i nie mogą występować lokalnie w bloku lub w pakiecie; są wykonywane niejawnie (lub inaczej uruchamiany (ang. firing)), o ile wystąpi zdarzenie wyzwalające, którym może być, np. operacja DML (INSERT, UPDATE lub DELETE) wykonywana dla tabeli lub odpowiedniego rodzaju perspektyw; uruchomienie lub zamknięcie bazy danych oraz pewne rodzaje operacji DDL. Wyzwalacze stosuje się między innymi: Utrzymanie złożonych więzów integralności, niemożliwych do uzyskania przez więzy deklaracji uaktywniane podczas tworzenia tabeli. Kontrola danych w tabeli przez rejestrowanie dokonywanych zmian oraz autorów tych zmian. Automatyczne przekazywanie do innych programów informacji, że jest wymagane podjęcie określonych działań w razie dokonania zmian w tabeli. TWORZENIE WYZWALACZY CREATE [OR REPLACE] TRIGGER nazwa_wyzwalacza {BEFORE AFTER INSTEAD OF } zdarzenie_wyzwalające [klauzula_z_odwolaniem] [WHEN warunek_wyzwalacza] [FOR EACH ROW] tresc_wyzwalacza; gdzie: zdarzenie_wyzwalające zdarzenie uruchamiające wyzwalacz (może również zawierać odwołanie do tabeli lub perspektywy); kaluzula_z_odwolaniem jest wykorzystywany w celu odwołania do danych w 1
2 modyfikowanym wierszu pod inną nazwą. warunek_wyzwalacza treść wyzwalacza jest wykonywana tylko przy warunku o wartości TRUE; Rodzaje wyzwalaczy: Wyzwalacze DML są uruchamiane przez instrukcje DML, a ich typ jest określany przez typ instrukcji. Można definiować je dla operacji INSERT, UPDATE lub DELETE i uruchamiać przed operacją lub po niej, a także w związku z operacjami dotyczącymi wiersza lub instrukcji. Istnieje 12 możliwych typów wyzwalaczy DML: 3 rodzaje operacji x 2 rodzaje czasów x 2 możliwe poziomy: wiersza wyzwalacz jest uruchamiany po jednym razie dla każdego wiersza, którego dotyczy instrukcja (FOR EACH ROW); instrukcji wyzwalacz jest uruchamiany jeden raz przed lub po wykonaniu instrukcji. Dla tabeli może być zdefiniowana dowolna liczba wyzwalaczy włącznie z możliwością zdefiniowania więcej niż jednego wyzwalacza dla określonego rodzaju instrukcji DML, np. można zdefiniować 2 wyzwalacze AFTER DELETE poziomu instrukcji. Wszystkie wyzwalacze tego samego typu będą uruchamiane sekwencyjnie. Przykład 1 Niech STATYSTYKA_ETAT będzie tabelą przechowującą informacje o etatach oraz liczbie zatrudnionych pracowników na poszczególnych etatach i sumie ich płac podstawowych. CREATE TABLE statystyka_etat ( etat VARCHAR2(30), ilu NUMBER(5), suma_plac NUMBER(8,2) ); CREATE OR REPLACE TRIGGER UaktualnijStatystyke AFTER INSERT OR UPDATE OR DELETE ON pracownik DECLARE CURSOR A IS SELECT etat e, COUNT(*) ile, SUM(placa_pod) suma 2
3 FROM pracownik GROUP BY etat; DELETE FROM statystyka_etat; FOR i IN A LOOP INSERT INTO statystyka_etat VALUES(i.e, i.ile, i.suma); END LOOP; END UaktualnijStatystyke; / Algorytm uruchamiania wyzwalaczy podczas wykonywania instrukcji DML: 1. Wykonywanie wyzwalacza BEFORE na poziomie instrukcji, o ile taki istnieje. 2. Dla każdego wiersza, na którym wykonywana jest instrukcja: wykonywanie wyzwalacza BEFORE na poziomie wiersza, o ile taki istnieje; wykonywanie samej instrukcji, o ile tka istnieje; wykonywanie wyzwalacza AFTER na poziomie wiersza, o ile taki istnieje. 3. Wykonywanie wyzwalacza AFTER na poziomie instrukcji, o ile taka istnieje. Ćwiczenie 1 1. Utwórz tabelę Cwiczenie2 składającą się z dwóch pól: całkowitego A i łańcucha 50 znaków B. 2. Utwórz sekwencję o nazwie indeks o wartości początkowej 1 i wzrastający o Utwórz pakiet o nazwie pakiet_wyzwalaczy, który zawierać będzie globalną zmienną całkowitą o nazwie licznik. 4. Utwórz wyzwalacz W1, który przed wykonaniem instrukcji UPDATE na tabeli pracownik wyzeruje zmienną licznik pakietu. Wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie instrukcji; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W2, który po wykonaniu instrukcji UPDATE na tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie instrukcji 1; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o 1. 3
4 6. Utwórz wyzwalacz W3, który po wykonaniu instrukcji UPDATE na tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie instrukcji 2; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W4, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 1; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W5, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 2; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W6, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 3; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W7, który po wykonaniu instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie wiersza; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Uaktualnić płacę podstawową o 10% tych pracowników, którzy są zatrudnieni w zespole o identyfikatorze 10 lub Wyświetlić zawartość tabeli Cwiczenie2 z uporządkowaniem wierszy w kolejności rosnącej wartości kolumny A. Kolejność uruchamiania wyzwalaczy tego samego typu nie jest określona, ale można ją wymusić definiując wyzwalacz łączący je w jeden. Wyzwalacze na poziomie wiersza uruchamiają się raz dla wiersza przetwarzanego przez instrukcję wyzwalającą. Wewnątrz wyzwalacza dostęp do danych w obecnie przetwarzanym wierszu można uzyskać za pomocą identyfikatorów korelacji (specjalnego rodzaju zmiennych dowiązanych zmiennych hosta PL/SQL, a kompilator będzie je traktował jako rekordy typu 4
5 tabela_wyzwalająca%rowtype): :new i :old. Wyzwalacze Instrukcja wyzwalająca Wartość :old Wartość :new INSERT UPDATE DELETE Nieokreślona wszystkie pola mają wartość NULL Oryginalne wartości wiersza przed uaktualnieniem Oryginalne wartości wiersza przed usunięciem Wartości, które będą wstawione po wykonaniu instrukcji. Nowe wartości, którymi będą uaktualnione pola po wykonaniu instrukcji. Nieokreślona wszystkie pola mają wartość NULL Przykład 2 CREATE SEQUENCE zespol_id START WITH 70 INCREMENT BY 10; CREATE OR REPLACE TRIGGER Wygeneruj_ID_Zespolu BEFORE INSERT OR UPDATE ON zespol FOR EACH ROW SELECT zespol_id.nextval INTO :new.id_zesp FROM dual; END; / INSERT INTO zespol (nazwa, adres) VALUES ('statystyka', 'Gleboka 3'); INSERT INTO zespol VALUES (-7, 'statyka', 'Plytka 3'); Nie można zmieniać wartości :new w wyzwalaczu AFTER. Wartość :old może być tylko odczytana. Nie można przypisywać wartości :old i :new jako całych rekordów, jedynie uzyskać dostęp do indywidualnych pól. 5
6 Przykład 3 CREATE OR REPLACE TRIGGER Usun BEFORE DELETE ON Cwiczenie2 FOR EACH ROW DECLARE zm Cwiczenie2%ROWTYPE; // zm := :old; NIEPOPRAWNE PRZYPISANIE zm.a := :old.a; zm.b := :old.b; END; / Ponadto nie jest możliwe przekazania wartości :old i :new do procedur lub funkcji. Klauzula REFERENCING występuje po zdarzeniu wywołującym, a przed klauzulą WHEN w definicji wyzwalacza i ma składnię: REFERENCING [OLD AS nowy_old] [NEW AS nowy_new] Przykład 4 CREATE OR REPLACE TRIGGER Wygeneruj_ID_Zespolu BEFORE INSERT OR UPDATE ON zespol REFERENCING new AS nowy_zespol FOR EACH ROW SELECT zespol_id.nextval INTO :nowy_zespol.id_zesp FROM dual; END; / Klauzula WHEN jest tylko prawidłowa na poziomie wiersza, a jej warunek jest sprawdzany dla każdego wiersza i tylko gdy jest on prawdziwy wykonywana jest treść wyzwalacza. Pseudorekordy :new i :old mogą być wykorzystane w warunku klauzuli WHEN ale odwołujemy się wtedy do nich bez znaku dwukropka. 6
7 WHEN (new.placa_pod > 1000) lub równoważnie IF :new.placa_pod > 1000 THEN END IF;... END; Na poziomie instrukcji INSERT, DELETE i UPDATE istnieją trzy boolowskie funkcje, które służą do określania rodzaju operacji: INSERTING TRUE, gdy instrukcją wyzwalającą jest INSERT, wpp FALSE; UPDATING TRUE, gdy instrukcją wyzwalającą jest UPDATE, wpp FALSE; DELETING TRUE, gdy instrukcją wyzwalającą jest DELETE, wpp FALSE. Ćwiczenie 2 Utworzyć wyzwalacz CW2, którego zadaniem będzie wyświetlenie odpowiedniego komunikatu o wykonaniu jednej z instrukcji INSERT, UPDATE lub DELETE na tabeli pracownik. Wyzwalacze zastępujące (ang. instead-of) mogą być definiowane tylko dla perspektyw (relacyjnych lub obiektowych) i uruchamiają się zamiast wyzwalającej je instrukcji DML. Działają na poziomie wierszy. Wykorzystuje się je w celu: umożliwienia modyfikowania perspektyw; modyfikowania kolumn tabeli zagnieżdżonej będącej kolumną w perspektywie. Perspektywa modyfikowalna to taka, dla której można wykonać instrukcję DML i nie zawiera: operatorów zbioru (UNION, UNION ALL, MINUS); funkcje agregujących; klauzul GROUP BY, CONNECT BY lub START WITH; operatora DISTNICT; złączeń. UWAGA: Można modyfikować perspektywy ze złączeniami o ile operacja DML modyfikuje tylko jedną tabelę bazową w danym czasie lub 7
8 Operacje DML INSERT UPDATE DELETE Dozwolone, jeżeli: Instrukcja nie odnosi się jawnie lub niejawnie do kolumn tabeli bez zachowania kluczy. Zmodyfikowane kolumny są odwzorowane na kolumny tabeli z zachowaniem kluczy. W złączeniu istnieje dokładnie jedna tabela z zachowaniem kluczy. Przykład 5 Tworzymy perspektywę opartą o wybrane dane pochodzące z dwóch tabel: pracownik i zespol. Następnie poprzez perspektywę próbujemy wstawić nowe wiersze do tych tabel. Wykonanie instrukcji kończy się niepowodzeniem. W kolejnym kroku definiujemy wyzwalacz zastępujący instrukcję INSERT. CREATE OR REPLACE VIEW Pracownik_adres AS SELECT numer, nazwisko, etat, nazwa, adres FROM pracownik, zespol WHERE pracownik.id_zesp=pracownik.id_zesp; INSERT INTO Pracownik_adres VALUES(1141, 'Kowalski', 'adiunkt', 'analiza','ak 13/15'); CREATE TRIGGER WstawPrzezPerspektywe INSTEAD OF INSERT ON Pracownik_adres DECLARE z_id_zesp zespol.id_zesp%type; SELECT max(id_zesp) INTO z_id_zesp FROM zespol; z_id_zesp := z_id_zesp + 10; INSERT INTO zespol VALUES(z_id_zesp, :new.nazwa, :new.adres); INSERT INTO pracownik VALUES ( :new.numer, :new.nazwisko, :new.etat, 1000, sysdate, 1800, 0, z_id_zesp, ' ' ); END WstawPrzezPerspektywe; / 8
9 Wyzwalacze systemowe począwszy od wersji Oracle8i wprowadzono możliwość definiowania wyzwalaczy, które uruchamiają się w przypadku wystąpienia zdarzenia systemowego takiego, jak uruchomienie lub zatrzymanie bazy danych. Wyzwalacz systemowy można również uruchomić dla instrukcji DDL (CREATE, ALTER, DROP), jak np. utworzenie tabeli. CREATE [OR REPLACE] TRIGGER [schemat. ] nazwa_wyzwalacza {BEFORE AFTER} {lista_zdarzen_ddl lita_zdarzen_bazy_danych} ON {DATABASE [schemat. ] SCHEMA} [WHEN warunek] tresc_wyzwalacza; Zdarzenie Dozwolony parametr czasowy Opis STARTUP AFTER Uruchamia się wraz z uruchomieniem bazy danych SHUTDOWN BEFORE Uruchamia się wraz z zatrzymaniem bazy danych. Zdarzenie to może nie nastąpić z chwilą zatrzymania bazy danych z powodu awarii. SERVERERROR AFTER Uruchamia się z chwilą wystąpienia błędu. LOGON AFTER Uruchamia się po pomyślnym zalogowaniu użytkownika do bazy danych. LOGOFF BEFORE Uruchamia się na początku procesu wyrejestrowania użytkownika z bazy danych. CREATE DROP ALTER BEFORE, AFTER Uruchamia się przed lub po utworzeniu obiektu schematu. BEFORE, AFTER Uruchamia się przed lub po usunięciu obiektu schematu. BEFORE, ALTER Uruchamia się przed lub po uaktualnieniu obiektu schematu. UWAGA: Tworzenie wyzwalaczy systemowych jest możliwe tylko dla użytkownika z uprawnieniami ADMINISTER DATABASE TRIGGER. Jeśli nie wyspecyfikujemy schematu dla słowa kluczowego SCHEMA, domyślnym będzie ten schemat, który zawiera wyzwalacz. 9
10 Atrybuty zdarzeń wyzwalacza systemowego: Wyzwalacze Atrybut Typ danych Zdarzenie Opis SYSEVENT VARCHAR2(20) Wszystkie Zwraca zdarzenie systemowe, które uruchomiło wyzwalacz. INSTANCE_NUM NUMBER Wszystkie Zwraca bieżący numer egzemplarza, zazwyczaj wartość 1. DATABASE_NAME VARCHAR2(50) Wszystkie Zwraca nazwę bieżącej bazy danych. SERVER_ERROR NUMBER SERVERERROR Zwraca błąd znajdujący się na stosie błędów wskazywany przez argument. Wartość 1 oznacza wierzchołek stosu. IS_SERVERERROR BOOLEAN SERVERERROR Pobiera numer błędu i zwraca TRUE o ile błąd znajduje się na stosie błędów. LOGIN_USER VARCHAR2(30) Wszystkie Zwraca identyfikator użytkownika, który uruchomił wyzwalacz. DICTIONARY_OBJ_ TYPE DICTIONARY_OBJ_ NAME DICTIONARY_OBJ_ OWNER DES_ENCRYPTED_ PASSWORD VARCHAR2(20) CREATE, DROP, DELETE Zwraca typ obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE, DROP, DELETE Zwraca nazwę obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE, DROP, DELETE Zwraca właściciela obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE lub ALTER USER Zwraca hasło zaszyfrowane algorytmem DES utworzonego użytkownika lub użytkownika, dla którego zmodyfikowano dane. Przykład 6 create table t_ddl( id VARCHAR2(30), typ_obiektu VARCHAR2(20), nazwa_obiektu VARCHAR2(30), wlasciciel_obiektu VARCHAR2(30), data_utworzenia date ); 10
11 CREATE OR REPLACE TRIGGER Rejestruj AFTER CREATE ON SCHEMA INSERT INTO t_ddl ( id, typ_obiektu, nazwa_obiektu, wlasciciel_obiektu, data_utworzenia) VALUES (USER, SYS.DICTIONARY_OBJ_TYPE, SYS.DICTIONARY_ OBJ_NAME, SYS.DICTIONARY_OBJ_OWNER,SYSDATE); END; / Wyzwalacze systemowe a transakcje wyzwalacz systemowy STARTUP, SHUTDOWN, SERVERERROR oraz LOGON uruchamiają się jako oddzielna transakcja, która jest zatwierdzana po pomyślnym wykonaniu wyzwalacza, natomiast wyzwalacze LOGOFF oraz związane z operacjami DDL uruchamiają się w ramach bieżącej transakcji. W przypadku wyzwalacza DDL bieżąca transakcja jest automatycznie zatwierdzana, co równocześnie zatwierdza działania wykonane przez wyzwalacz. Działanie wyzwalacza LOGOFF również będzie zatwierdzone jako część końcowej transakcji w sesji. UWAGA: Dla wyzwalaczy STARTUP i SHUTDOWN nie można określać żadnych warunków. W wyzwalaczach SERVERERROR można także wykorzystać zmienną ERRNO w celu śledzenia tylko wybranego błędu. W wyzwalaczach LOGON i LOGOFF można sprawdzać identyfikator i nazwę użytkownika, posługując się zmiennymi USERID i USERNAME. W wyzwalaczach DDL można sprawdzać typ i nazwę modyfikowanego obiektu, a także identyfikator i nazwę użytkownika. Przestrzeń nazw jest zbiorem poprawnych identyfikatorów, dostępnych do wykorzystania jako nazwy obiektów. Procedury, pakiety i tabele mają wspólną przestrzeń nazw. Wyzwalacze maja osobną przestrzeń nazw, co oznacza, że wyzwalacze mogą mieć nazwę taką samą jak, np. procedura, funkcja, czy tabela. 11
12 Ograniczenia: W wyzwalaczu nie można wydawać żadnych instrukcji sterowania transakcją COMMIT, ROLLBACK lub SAVEPOINT. Kompilator pozwoli na utworzenie wyzwalacza, ale przy uruchomieniu wystąpi błąd. W procedurach i funkcjach wewnątrz wyzwalaczy wydawać żadnych instrukcji sterowania transakcją. W treści wyzwalacza nie deklaruje się zmiennych LONG lub LONG RAW. Wartości :new i :old nie mogą się odwoływać do kolumn tego typu w tabeli, dla której zdefiniowano wyzwalacz. Można odwoływać się i wykorzystywać kolumny typu LOB, ale nie można modyfikować wartości tych kolumn. Dotyczy to również kolumn obiektowych. W treści wyzwalacza można wykonywać instrukcję CALL. Po utworzeniu wyzwalacza jego kod źródłowy jest składowany w perspektywie słownika danych user_triggers. W perspektywie tej znajduje się kod wyzwalacza, dane określające klauzulę WHEN, tabelę wyzwalającą oraz typ wyzwalacza. SELECT trigger_type, table_name, trigger_event FROM user_triggers WHERE trigger_name = 'WstawPrzezPerspektywe'; Perspektywy: all_triggers zawierają informacje o wyzwalaczach dostępnych dla bieżącego użytkownika, które mogą należeć do innego użytkownika; dba_triggers zawiera informacje na temat wyzwalaczy w bazie danych. USUWANIE wyzwalacza: DROP TRIGGER nazwa_wyzwalacza; DEZAKTYWOWANIE wyzwalacza: ALTER TRIGGER nazwa_wyzwalacza {DISABLE ENABLE}; DEZAKTYWACJA wyzwalaczy na danej tabeli: ALTER TABLE nazwa_tabeli {DISABLE ENABLE} ALL TRIGGERS; Skompilowana forma wyzwalacza jest również przechowywana w słowniku danych. Wyzwalacz 12
13 unieważniony będzie ponownie skompilowany przy następnym uruchomieniu. TABELE MUTUJĄCE Tabela mutująca jest tabelą, która w danej chwili jest modyfikowana przez instrukcję DML. W przypadku wyzwalacza jest to tabela, dla której zdefiniowano wyzwalacz. Tabelami mutującymi mogą być również tabele, które mogą wymagać uaktualnienia w wyniku kaskadowego usuwania danych (DELETE CASCADE) przy występujących więzach integralności referencyjnej. Tabela wiążąca jest tabelą, która może wymagać odczytu ze względu na więzy integralności referencyjnej. W tabeli pracownik mamy zdefiniowane ograniczenia dla kolumn i klucze obce do tabel etat i zespol. Tabele etat i zespol są zatem tabelami wiążącymi dla tabeli pracownik. Sama tabela pracownik podlega mutacji podczas wykonywania dla niej instrukcji DML. Z powodu istneijących więzów tabele etat i zepsol również wymagają modyfikacji i (lub) wykonania zapytań przez instrukcję DML. Instrukcje SQL wewnątrz wyzwalaczy nie mogą wykonywać następujących operacji: Odczytywać lub modyfikować tabeli mutującej wskazanej w instrukcji wyzwalanej. Zasada ta dotyczy samej tabeli wyzwalającej. Odczytywać lub modyfikować kolumny klucza głównego, unikatowego lub obcego tabeli wiążącej dla tabeli wyzwalającej. Jednak w razie potrzeby instrukcje SQL mogą przeprowadzać modyfikacje innych kolumn. Powyższe ograniczenia dotyczą wszystkich wyzwalaczy na poziomie wiersza. Na poziomie instrukcji ograniczenia te są prawdziwe tylko wtedy, gdy wyzwalacz na poziomie instrukcji jest uruchomiony w wyniku operacji kaskadowego usuwania. 13
Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1
Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane
1. Wyzwalacze BD (ang. triggers)
1. Wyzwalacze BD (ang. triggers) Wyzwalacz bazy danych jest procedurą składowaną w bazie powiązaną z jedną konkretną tablicą. Z pojedynczą tablicą może być związane wiele wyzwalaczy, natomiast pojedynczy
PODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
Język PL/SQL. Rozdział 6. Procedury wyzwalane
Język PL/SQL. Rozdział 6. Procedury wyzwalane Procedury wyzwalane, cele stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie
Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML
Procedury wyzwalane Rozdział 13 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie
Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.
Plan wykładu Spis treści 1 Dynamiczny SQL 1 2 Wyzwalacze 2 3 Podsumowanie 9 4 Źródła 9 1 Dynamiczny SQL Dynamiczny SQL Dynamiczny SQL - technika programowania umożliwiająca generowanie instrukcji SQL dynamicznie
Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze
Plan wykładu BAZY DANYCH II WYKŁAD 8 Wyzwalacze: zalety, rodzaje, tworzenie, Wyzwalacze DML, Wyzwalacze zastępujące, Wyzwalacze systemowe, Tabele mutujące, Wyzwalacze złożone, Wyzwalacze a SQL Developer,
Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.
Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN
Zaawansowane bazy danych i hurtownie danych semestr I
Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie
PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń
PL/SQL Zaawansowane tematy PL/SQL Piotr Medoń Cele Omówienie transakcji bazodanowych Omówienie obsługi wyjątków Zarządzanie perspektywami Tworzenie i usuwanie sekwencji Budowa wyzwalaczy 2 Transakcje bazodanowe
Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];
Widoki/Perspektywy Podstawy Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Usuwanie widoku DROP VIEW [nazwa_widoku]; Przykład 1 Przykład najprostszego
Cele. Definiowanie wyzwalaczy
WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa
Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu
Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też
SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE
Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Wyzwalacze. Anna Fiedorowicz Bazy danych 2
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)
Bazy danych wykład szósty Więzy i wyzwalacze Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa szósty Więzy i wyzwalacze 1 / 35 Wstęp Wiemy jak nakładać pewne ograniczenia (więzy) w
Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;
Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie
BAZY DANYCH W APLIKACJACH SIECIOWYCH
BAZY DANYCH W APLIKACJACH SIECIOWYCH Wykład 4 Wyjątki. Wyzwalacze bazodanowe. (Wybrane materiały) Dr inż. E. Busłowska Obsługa wyjątków w PLSQL Wyjątek (ang. Exception) - błąd lub ostrzeżenie w PLSQL Typy
E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.
SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania
3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota
Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)
kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli
SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,
15. Funkcje i procedury składowane PL/SQL
15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp
Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle
Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.
Bazy danych, 4. wiczenia
Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)
Cheatsheet PL/SQL Andrzej Klusiewicz 1/9
Declare y integer; z varchar2(50); d date; null; Declare x integer:=10; null; x integer; x:=10; dbms_output.put_line('hello world'); for x in 1..10 loop Deklaracja 4 zmiennych. Jednej typu rzeczywistego,
Język SQL. Rozdział 8. Język manipulowania danymi DML
Język SQL. Rozdział 8. Język manipulowania danymi DML Wstawianie danych i polecenie INSERT, modyfikowanie danych i polecenie UPDATE, usuwanie danych i polecenie DELETE, połączenia modyfikowalne, sekwencje.
Oracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika
Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD
Pakiety podprogramów Dynamiczny SQL
Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');
polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {
Aspekty aktywne baz danych
Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać
Indeksy. Indeks typu B drzewo
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.
Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger
I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE
Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy
Język PL/SQL Procedury i funkcje składowane
Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone
Wykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Wyzwalacze (triggery) Przykład
Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne
Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze
w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w
Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)
Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.
Oracle11g: Programowanie w PL/SQL
Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany
Bazy danych - Materiały do laboratoriów VIII
Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,
Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza
4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
Grupa A (LATARNIE) Imię i nazwisko: Numer albumu: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Nazwisko prowadzącego: 11: 12: Suma: Ocena: Zad. 1 (10 pkt) Dana jest relacja T. Podaj wynik poniższego zapytania (podaj
Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99
Plan ćwiczenia Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych Użytkownicy i schematy bazy danych. Uwierzytelnianie i autoryzacja. Przywileje systemowe i obiektowe. Role. Synonimy. Uprawnienia,
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];
Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server
Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;
Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku
SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;
Administrowanie użytkownikami Ćwiczenia laboratoryjne (2) Przygotowanie środowiska 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz dwie sesje w dwóch różnych
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania 1. Zmodyfikuj strukturę relacji PROJEKTY, dodając do niej definicje następujących ograniczeń integralnościowych (użyj kilku poleceń):
ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład
ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna
Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL
Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.
Procedury i funkcje składowane
Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe
Systemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej
Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji
Język PL/SQL. Rozdział 2. Kursory
Język PL/SQL. Rozdział 2. Kursory Deklarowanie kursora, otwieranie kursora, pobieranie z kursora, zamykanie kursora, zmienne kursorowe, wyrażenie CURSOR, kursory niejawne. 1 Kursor jawny Każde zapytanie
DECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną
Uprawnienia, role, synonimy
Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy
Bazy danych 6. Klucze obce. P. F. Góra
Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:
Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z
Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)
BAZA DANYCH SIECI HOTELI
Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu
Hurtownia Świętego Mikołaja projekt bazy danych
Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek
SQL 4 Structured Query Lenguage
Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...
SQL :: Data Definition Language
SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem
Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych
PRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Deklarowanie kursora
Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor
CREATE SEQUENCE [schemat_użytkownika.]nazwa_sekwencji zestaw_parametrów_sekwencji ;
Wykład 10 Implementacja języka SQL w systemach baz danych Oracle wybrane komendy DDL dodatkowych, przydatnych mechanizmów serwera bazy danych jak sekwencje, wyzwalacze i indeksy. (Wykład oparty na dokumentacji
Składowane procedury i funkcje
Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
Oracle10g: Programowanie w PL/SQL
Oracle10g: Programowanie w PL/SQL OPIS: Szkolenie dotyczy użytkowników Oracle8i, Oracle9i i Oracle10g. Ten kurs pozwala zrozumieć zalety tego potężnego narzędzia programowania do PL/SQL. Studenci uczą
Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)
Kursor jawny Każde zapytanie SQL umieszczone w programie PL/SQL może zwrócić zero, jedną bądź wiele krotek. Aby efektywnie przetworzyć krotkizwrócone przez zapytanie korzystamy z kursorów. Kursor jest
Zarzadzanie transakcjami. Transakcje
Transakcje Transakcja: ciąg zawierający jedno lub wiele poleceń SQL, zgrupowanych razem jako jedna logiczna jednostka działań, której nie można podzielić. Logiczna jednostka działań to zbiór logicznych
T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15
T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest
Język PL/SQL Pakiety podprogramów
Język PL/SQL Pakiety podprogramów Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora) 1 Pakiety Pakiet (ang. package) grupuje powiązane
SQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Technologie baz danych WYKŁAD 7: Wyjątki
Wydział Informatyki Politechnika Białostocka Obsługa wyjątków Technologie baz danych WYKŁAD 7: Wyjątki [] [] Agnieszka Oniśko, Małgorzata Krętowska TBD-wyjątki 1 TBD-wyjątki 2 Sposoby powstania sytuacji
Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze
Ćwiczenie 13 PL/SQL Język PL/SQL procedury, funkcje, pakiety, wyzwalacze Ćwiczenie 13 PL/SQL Niniejsze ćwiczenie zaprezentuje składowane w bazie danych programy PL/SQL: procedury, funkcje, pakiety oraz
Rozdział 17. Zarządzanie współbieżnością zadania
Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o
Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych
Plan wykładu BAZY DANYCH II WYKŁAD 3 Zasięg zmiennych Zmienne powiązane Instrukcje warunkowe Pętle Pobieranie danych SQL w PL/SQL Rekordy dr inż. Agnieszka Bołtuć Zasięg zmiennych Zmienna jest dostępna
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje