Bloki anonimowe w PL/SQL
|
|
- Błażej Komorowski
- 9 lat temu
- Przeglądów:
Transkrypt
1 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 pisanie bloków programów, funkcji, procedur,... Możliwości, jakie daje język PL/SQL to: korzystanie z pętli oraz instrukcji warunkowych; dostęp do danych w plikach; poprawienie wydajności bazy danych; tworzenie rozbudowanych programów, do wykonania zadań niemożliwych do zrealizowania za pomocą samego SQL-a; obsługa błędów i wyjatków. W języku PL/SQL można tworzyć cztery rodzaje programów: 1. bloki anonimowe; 2. procedury składowane; 3. wyzwalacze; 4. funkcje. Bloki anonimowe w PL/SQL W języku PL/SQL można tworzyć bloki anonimowe, nie posiadające nazwy. Nie są zapisywane w bazie danych. Można ich używać w celu jednorazowego wykonania kodu. deklaracje zmiennych kod wykonywalny W poniższym przykładzie każdemu pracownikowi w tabeli employee dajemy podwyżkę o 100$. kwota NUMBER(4); kwota:=100; UPDATE employee SET salary=salary+kwota; Deklaracje zmiennych i stałych Zmienne i stałe deklarujemy w sekcji bloku anonimowego. Deklaracja zmiennej ma postać: zmienna typ_danych; Deklaracja stałej: stala1 CONSTANT typ_danych := wartość; Przykładowa sekcja deklaracji: liczba1 NUMBER(4); liczba2 INT :=90; liczba3 INT NOT NULL :=0; tekst1 VARCHAR2(30); data1 DATE default SYSDATE; stala1 CONSTANT CHAR(5) := tekst ; Użycie w deklaracji zmiennej instrukcji:=wyrażenie umożliwia inicjalizację wartości zmiennej w przeciwnym razie zmiennej jest przypisywane NULL. Do inicjalizacji wartości zmiennej zamiast operatora := można użyć klauzuli DEFAULT. Polecenia SQL w programach PL/SQL W kodzie programu PL/SQL można używać instrukcji INSERT, UPDATE, DELETE podobnie, jak w języku SQL. Instrukcji SELECT używamy łacznie z klauzulą INTO.
2 Polecenia SQL w programach PL/SQL Polecenia SQL w programach PL/SQL W kodzie programu PL/SQL można używać instrukcji INSERT, UPDATE, DELETE podobnie, jak w języku SQL. Instrukcji SELECT używamy łacznie z klauzulą INTO. Przykład: użycie UPDATE w bloku anonimowym: kwota NUMBER(5):=200; dzial INT; dzial:=90; UPDATE employees SET salary=salary+kwota WHERE department_id=dzial; W kodzie programu PL/SQL można używać instrukcji INSERT, UPDATE, DELETE podobnie, jak w języku SQL. Instrukcji SELECT używamy łacznie z klauzulą INTO. Przykład: użycie INSERT w bloku anonimowym: id char(2); nazwa varchar2(40); region number:=1; nazwa:= Poland ; id:= PL ; INSERT INTO countries(country_id,country_name,region_id) VALUES ( id,nazwa,region); Instrukcji DELETE używa się analogicznie. W przypadku SELECT musimy zastosować klauzulę INTO. Uwaga. Zapytanie SELECT w tym przypadku musi zwracać zawsze tylko jeden wiersz. W klauzuli INTO podajemy listę zmiennych, do których przypisywane są wartości z kolejnych pól zwracanych przez SELECT. Liczba i typy zmiennych muszą odpowiadać liczbie i typom wyrażeń zwracanych przez SELECT. 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 Oracla. Funkcje tworzymy za pomocą instrukcji CREATE FUNCTION. CREATE FUNCTION nazwa_funkcji RETURN typ_zwracanych_danych IS deklaracje zmiennych kod RETURN wynik; Wywołanie funkcji może nastąpić z poziomu instrukcji SQL, np. SELECT nazwa_funkcji FROM dual; lub z poziomu innego programu PL/SQL. Usunięcie funkcji odbywa się za pomocą instrukcji DROP FUNCTION nazwa;.
3 Użycie parametrów w funkcjach CREATE OR REPLACE FUNCTION suma RETURN INT IS liczba1 INT:=90; liczba2 INT:=100; suma INT; suma:=liczba1+liczba2; RETURN suma; Funkcje oraz procedury mogą mieć parametry. Wyróżniamy trzy typy parametrów: IN - parametr tylko do odczytu, służy do przekazania danych do funkcji lub procedury; OUT - parametr wyjściowy, umożliwia zwrócenie danych przez program; ma wartość NULL do momentu zainicjalizowania; IN OUT - parametr wejściowo/wyjściowy; podczas wywoływania programu służy do przekazania do niego danych, umożliwia zwrócenie danych; używamy, gdy dane wejściowe mają zostać zmienione podczas działania programu. Parametry wejściowe W funkcjach zazwyczaj używa się tylko parametrów typu IN. Definicja funkcji z uwzględnieniem parametrów wejściowych (IN) ma postać: CREATE FUNCTION nazwa_funkcji (parametr1 IN typ_danych, parametr2 IN typ_danych,...) RETURN typ_zwracanych_danych IS deklaracje zmiennych kod RETURN wynik; Uwaga. Używając typów CHAR, NUMBER, VARCHAR2 dla parametrów funkcji i procedur nie podajemy zakresu (jest wyliczany na podstawie danych wejściowych i wyjściowych). Definicja funkcji liczącej średnią dwóch liczb: CREATE OR REPLACE FUNCTION srednia (liczba1 IN NUMBER, liczba2 IN NUMBER) RETURN NUMBER IS srednia NUMBER; srednia:=(liczba1+liczba2)/2; RETURN srednia; Wywołanie funkcji srednia: SELECT srednia(1,2) FROM dual;
4 Instrukcje sterujace języka PL/SQL Instrukcja przypisania := zmienna :=wyrażenie; np. kwota:=100; akt_data:=sysdate; Instrukcje warunkowe Instrukcja warunkowaif...then...end IF. Składnia instrukcji IF: IF warunek THEN instrukcje; ELSIF warunek THEN instrukcje; ELSE instrukcje END IF; Jeżeli warunek podany w wyrażeniu IF jest spełniony, wykonywany jest blok instrukcji występujący za THEN. W przeciwnym przypadku i gdy spełniony jest warunek wyrażenia ELSIF, wykonywany jest blok instrukcji występujący po tym wyrażeniu. Jeżeli ten warunek nie jest spełniony, wykonywane są instrukcje z bloku ELSE. Uwaga. Użycie klauzul ELSIF oraz ELSE nie jest wymagane. Przy testowaniu i uruchamianiu aplikacji składających się z kodu PL/SQL wygodnie jest pobierać dane do testowania z klawiatury i wypisywać informacje o przebiegu obliczeń na ekran. Realizuje się to za pomocą instrukcji: DBMS_OUTPUT.Put_line(wyrażenie_napisowe); Instrukcja warunkowa CASE test INT; wynik VARCHAR2(10); test:=1; IF test<0 THEN wynik:= ujemna ; ELSIF test<=2 THEN wynik:= przedział [0,2] ; ELSE wynik:= większe od 2 ; END IF; dbms_output.put_line(wynik); Instrukcja CASE występuje w dwóch formach. Użycie CASE z wyszukiwaniem, jak poniżej powoduje, że sprawdzane są kolejno warunki w klauzulach WHEN, do momentu natrafienia na taki, który będzie spełniony. Wykonywany będzie wówczas odpowiedni blok instrukcji. Pozostałe warunki nie są sprawdzane. Jeżeli żaden warunek nie jest spełniony, wykonywane są instrukcje z klauzuli ELSE (o ile taka klauzula istnieje). CASE WHEN warunek1 THEN instrukcje1; WHEN warunek2 THEN instrukcje2;... ELSE instrukcje; END CASE;
5 Instrukcja warunkowa CASE Użycie CASE: i NUMBER(1) := 3; CASE WHEN i=1 THEN DBMS_OUTPUT.PUT_LINE( i wynosi 1 ); WHEN i>2 THEN DBMS_OUTPUT.PUT_LINE( i jest większe od 2 ); ELSE DBMS_OUTPUT.PUT_LINE( i wynosi i); END CASE; Druga forma instrukcji CASE sprawdza, czy wartość danego wyrażenia (zwanego selektorem) jest równa jednemu z wymienionych wyrażeń. Jeżeli tak, to wykonywane są odpowiednie instrukcje. Jeżeli wartość wyrażenia nie zostanie dopasowana, wykonywana jest klauzula ELSE (o ile występuje). CASE selektor WHEN wyrażenie1 THEN instrukcje1; WHEN wyrażenie2 THEN instrukcje2;... ELSE instrukcje; END CASE; Pętle. Pętla LOOP Pętle LOOP jest definiowana przy użyciu klauzul LOOP i END LOOP. Aby zakończyć działanie pętli LOOP, musimy podać warunek wyjścia: albo korzystając z klauzuli EXIT WHEN albo stosując instrukcję IF z klauzulą EXIT. Przykład pętli LOOP: i INT; i:=1; LOOP dbms_output.put_line( i= TO_CHAR(i)); EXIT WHEN i=10; i:=i+1; END LOOP; Pętla WHILE Pętli WHILE używamy aby instrukcja (lub blok instrukcji) była wykonywana, dopóki spełniony jest warunek pętli. WHILE warunek LOOP instrukcje END LOOP Definiując warunek w pętli WHILE należy pamiętać, że pętla będzie wykonywana tak długo, jak długo warunek określony w pętli będzie spełniony. Aby uniknąć pętli nieskończonej, należy umieścić w ciele pętli kod odpowiedzialny za zmianę tego warunku na fałszywy. Uwaga. Działanie pętli WHILE można również przerwać, stosując klauzulę EXIT WHEN.
6 Pętla FOR Podstawowe typy danych w PL/SQL Pętli FOR używamy, gdy znamy liczbę iteracji. FOR iterator IN 1..n LOOP instrukcje END LOOP Zmienna iterator użyta do zdefiniowania pętli FOR nie jest deklarowana. Jej zasięg ogranicza się tylko do pętli. Nie można się do niej odnosić poza blokiem pętli. Domyślnie podaje się najpierw mniejszą, a potem większą z wartości zakresu iteratora, którego wartość w każdej iteracji jest zwiększana o 1. Aby to odwrócić, należy zdefiniować pętlę z opcją REVERSE: FOR iterator IN REVERSE 1..n LOOP END LOOP. NUMBER[(precision,scale)]: przechowuje liczby zarówno stałoprzecinkowe, jak zmiennoprzecinkowe. Parametr precision określa ilość cyfr całej liczby, parametr scale liczbę miejsc po przecinku. Zakres parametru precision wynosi 38 (domyślnie 38), skala może być z przedziału od -84 do 127(domyślnie 0). Liczbę całkowitą definiujemy następująco: NUMBER(p) lub NUMBER(p,0). Można też użyć podtypu INT. Liczby stałoprzecinkowe definiujemy podając obydwa parametry, liczby zmiennoprzecinkowe - tylko NUMBER, bez parametrów. Podstawowe typy danych w PL/SQL CHAR(n) - typ znakowy stałej długości, n musi być z zakresu od 1 do Jeżeli nie zdefiniujemy zakresu, domyślnie przyjmowane jest n=1. VARCHAR2(n) - typ znakowy zmiennej długości, n musi być określone, zakres od 1 do BOOLEAN - typ logiczny, przechowuje tylko wartości TRUE, FALSE, i NULL (która odpowiada brakowi wartości lub wartości nieokreślonej). Na zmiennych typu BOOLEAN można wykonywać tylko operacje logiczne. DATE - przechowuje datę oraz czas. Tablice i typ rekordowy W PL/SQL można definiować własne typy danych (np. tablice, rekordy), w oparciu o typy bazowe. Definicja typu tablicowego: tablica o zadeklarowanym maksymalnym rozmiarze: VARRAY(n) OF typ danych; aby zadeklarować tablicę nie określając maksymalnego rozmiaru, używamy konstrukcji TABLE OF typ danych, np. TYPE tabela1 IS TABLE OF VARCHAR2(30); TYPE tabela2 IS VARRAY(5) OF INTEGER; tab1 tabela1; tab2 tabela2; tab1 := tabela1( IiESP, MatSP, IDSP ); tab2 := tabela2(1, 2, 3, 4, 5); tab1(2):= MatSD ; tab2(1):=7;
7 Tablice w PL/SQL Tablice typu VARRAY(n) będziemy nazywali varray, natomiast tablice typu TABLE - tabelami zagnieżdżonymi. Zanim zostanie zainicjalizowana za pomocą konstruktora tablica, varray lub tabela zagnieżdżona, ma wartość NULL (tzn. cała kolekcja ma wartość NULL, a nie jej poszczególne elementy). Konstruktor to wbudowana funkcja, o nazwie takiej samej, jak nazwa typu, która tworzy kolekcję z elementów do niej przekazanych. TYPE tabela1 IS TABLE OF VARCHAR2(30);// definicje TYPE tabela2 IS VARRAY(5) OF INTEGER;// typów tab1 tabela1; tab2 tabela2; tab1 := tabela1( IiE, Mat, ID ); //konstruktor tab2 := tabela2(1, 2, 3, 4, 5); //konstruktor Tablice w PL/SQL Dobrze jest inicjalizować kolekcję w momencie jej deklaracji: TYPE ListaKursow IS TABLE OF VARCHAR2(16); kursy ListaKursow := ListaKursow( Mat 1111, Hist 3100, Biol 2005 ); Można także stworzyć pustą kolekcję (ale NOT NULL), w tym celu wywołujemy konstruktor bez argumentów: TYPE Klient IS VARRAY(100) OF VARCHAR2(16); vip Klient := Klient();//inicjalizujemy pusta tablicę varray IF vip IS NOT NULL THEN...// warunek daje TRUE... END IF; Metody kolekcji Przy używaniu kolekcji, można wykorzystać poniższe metody, aby ułatwić pracę z kolekcjami i uczynić kod bardziej czytelnym: EXISTS COUNT LIMIT FIRST i LAST PRIOR i NEXT EXTEND TRIM DELETE Metoda kolekcji to wbudowana funkcja lub procedura operująca na kolekcji. Aby się do niej odwołać, używamy notacji kropkowej: nazwa_kolekcji.metoda[(parametry)] Uwaga. jeżeli kolekcja jest NULL, to każda metoda poza EXISTS wywołuje wyjątek (COLLECTION_IS_NULL). EXISTS EXISTS(n) zwraca TRUE, jeżeli n-ty element kolekcji istnieje (FALSE w każdym innym przypadku, czyli też, jak indeks jest spoza zakresu), np. IF kursy.exists(i) THEN kursy(i) := nowy_kurs; END IF; Można użyć np., do rzadkich tablic zagnieżdżonych. COUNT COUNT zwraca liczbę elementów, które aktualnie zawiera kolekcja, np.: IF projekty.count = 25 THEN... lub jako zakres pętli: FOR i IN 1..kursy.COUNT LOOP... COUNT jest użyteczne, bo aktualny rozmiar tabeli nie zawsze jest znany. Uwaga. Dla tablic varray, COUNT jest zawsze równe LAST. Dla tabel zagnieżdżonych, COUNT zazwyczaj jest równe LAST, ale, jeżeli wykasujemy elementy za środka tabeli, to wówczas COUNT będzie mniejsze niż LAST (COUNT nie zlicza wykasowanych elementów).
8 LIMIT Dla tablic varray, LIMIT określa maksymalny rozmiar (czyli liczbę elementów, które może przechować) danej tablicy. FIRST i LAST Zwracają pierwszy i ostatni(czyli najmniejszy i największy) indeks w kolekcji. Jeżeli kolekcja jest pusta, zwracają NULL. Można wykorzystać FIRST i LAST do określenia zakresu pętli (pod warunkiem, że każdy element z tego zakresu istnieje): FOR i IN kursy.first..kursy.last LOOP... PRIOR(n) i NEXT(n) - używamy do iterowania po elementach kolekcji. PRIOR(n) zwraca indeks elementu poprzedzającego element o indeksie n, NEXT(n) - indeks kolejnego. Jeżeli dany element nie istnieje, obie metody zwracają NULL. Można użyć PRIOR lub NEXT do przeglądania np. tabeli zagnieżdżonej, z której niektóre elementy zostały wykasowane: i := kursy.first; //indeks pierwszego elementu WHILE i IS NOT NULL LOOP wykonujemy operacje na kursy(i) i := kursy.next(i); //pobieramy indeks kolejnego END LOOP; Zwiększanie rozmiaru kolekcji: metoda EXTEND Procedura ma trzy formy: EXTEND dodaje pusty element do kolekcji (na końcu); EXTEND(n) dodaje n pustych elementów do kolekcji; EXTEND(n,i) dodaje n kopii i-tego elementu. Np., dodajemy pięć razy kopię pierwszego elementu do tabeli zagnieżdżonej: kursy.extend(5,1); uwaga. EXTEND nie można użyć do kolekcji będącej NULL. EXTEND bierze pod uwagę także wykasowane elementy, więc w poniższym kodzie, indeks ostatniego elementu w tabeli to 4, a nie 3. TYPE ListaKursow IS TABLE OF VARCHAR2(10); kursy ListaKursow; kursy := ListaKursow( Biol, Mat, Alg ); kursy.delete(3); //kasujemy element nr 3 /* PL/SQL trzyma miejsce dla elementu nr 3, zatem kolejna instrukcja odnosi się do elementu 4, a nie do 3*/ kursy.ext //dodajemy jeden pusty element kursy(4) := Fiz ;//element 4 istnieje Zmniejszanie rozmiaru kolekcji TRIM. Procedura ma dwie formy: TRIM usuwa element z końca kolekcji; TRIM(n) usuwa n elementów z końca kolekcji. Np., usuwanie trzech ostatnich elementów z tabeli zagnieżdżonej kursy: kursy.trim(3); Uwaga. jeżeli n jest spoza zakresu, TRIM(n) zwraca wyjątek (SUBSCRIPT_BEYOND_COUNT). TRIM bierze pod uwagę wykasowane elementy.
9 Kasowanie elementów tabel zagnieżdżonych DELETE. Procedura ma trzy formy: DELETE usuwa wszystkie elementy z kolekcji. DELETE(n) usuwa n-ty element (o ile istnieje). DELETE(m,n) usuwa elementy z zakresu od m do n. kursy.delete(2); // kasuje element 2 kursy.delete(7,7); // kasuje element 7 kursy.delete(6,3); // nic nie robi kursy.delete(3,6); // usuwa elementy od 3 do 6 Uwaga. Nie można kasować elementów w tablicach varray (są "gęste", tzn. nie można tworzyć dziur). PL/SQL trzyma miejsce dla wykasowanych elementów, wykasowany element można prosto zastąpić nowym, wystarczy mu przypisać nową wartość. Tablice i typ rekordowy Typem rekordowym (rekordem) nazywamy złożoną strukturę danych, której składowe, zwane polami, mogą należeć do różnych typów. Definicję typu rekordowego umieszczamy w sekcji bloku: TYPE nazwa IS RECORD( lista deklaracji pól rekordu ); Np.: rekord do przechowywania danych samochodu: TYPE samochod IS RECORD( marka VARCHAR2(30), rocznik INT, cena NUMBER(10) ); Zmienną rekordową deklarujemy następująco: moje_auto samochod; Odwołując się do pól rekordu używamy notacji kropkowej, np. moje_auto.marka Atrybuty %TYPE i %ROWTYPE Atrybuty %TYPE i %ROWTYPE Atrybutu %TYPE można użyć, aby zadeklarować zmienną, której typ zostanie nadany na podstawie typu danych kolumny w tabeli. Jest to użyteczne, jeżeli zmienna ma za zadanie przechowywać wartości z okreslonej kolumny tabeli. Dla przykładu, aby zdefiniować zmienną v_last_name, która będzia miała taki sam typ danych, jak kolumna last_name w tabeli employee, należy użyć notacji kropkowej oraz atrybutu %TYPE: v_last_name employee.last_name%type; Podejście takie ma dwie zalety. Po pierwsze, nie musimy znać dokładnego typu danych kolumny last_name. Po drugie, jeżeli zmienimy w bazie typ danych kolumny last_name, to automatycznie zmieni się typ zmiennej v_last_name. Atrybut%ROWTYPE umożliwia zadeklarowanie zmiennej rekordowej, reprezentującej wiersz tabeli. Taki rekord może przechowywać wiersz wybrany z tabeli lub kursora. Pola rekordu mają takie same nazwy i typy danych, jak odpowiadające im kolumny. Dla przykładu, zadeklarujemy rekord dept_rec. Pola tego rekordu mają takie same nazwy i typy danych, jak kolumny w tabeli department: dept_rec department%rowtype; Aby odwołać się do pól rekordu, używamy notacji kropkowej: v_deptid := dept_rec.dept_id;
10 Kursory Kursory Każde polecenie SQL, umieszczone w programie PL/SQL, w trakcie wykonania zostaje skojarzone z obszarem pamięci (tzw. obszarem roboczym), w którym przechowywane są informacje o przetwarzanym poleceniu: m.in. status wykonania polecenia i zbiór odczytanych z bazy danych rekordów (w przypadku zapytania). Dostęp w programie PL/SQL do tego obszaru pamięci jest możliwy za pomocą specjalnej struktury, tzw. kursora. Kursor umożliwia: nadanie nazwy obszarowi roboczemu, dostęp do niego, pobranie z niego danych, kontrolę procesu przetwarzania danych. Rodzaje kursorów: jawne (explicit) - są deklarowane przez programistę i służą do odczytu zbioru rekordów z bazy danych, niejawne (implicit) - tworzone automatycznie dla każdego polecenia UPDATE, INSERT, DELETE i SELECT INTO, jakie zostaje umieszczone w programie. Przetwarzając kursor musimy wykonać cztery operacje: zadeklarować kursor, otworzyć go, pobrać wiersze, zamknąć kursor. Pętla kursorowa CURSOR moj_kursor IS SELECT * FROM employee WHERE dept_no= 000 ; osoba employee%rowtype; OPEN moj_kursor; FETCH moj_kursor INTO osoba; dbms_output.put_line( Dane osoby: osoba.full_name); CLOSE moj_kursor; Użycie petli kursorowej umożliwia pobranie kolejnych rekordów z kursora. Nie ma konieczności otwierania ani zamykania kursora (odpowiada za to pętla), np. CURSOR moj_kursor IS SELECT * FROM employee WHERE dept_no= 000 ; FOR osoba IN moj_kursor LOOP dbms_output.put_line( Dane osoby: osoba.full_name); END LOOP; Zmienna wierszowa osoba jest deklarowana niejawnie, jest widoczna tylko wewnątrz pętli kursorowej. Przechowuje dane kolejno pobranych rekordów z kursora.
11 Atrybuty kursora Atrybuty kursora określają jego właściwości. ISOPEN zwraca true, jeżeli kursor jest otwarty. ROWCOUNT zwraca liczbę wierszy, które zostały już pobrane z kursora. NOTFOUND sprawdza, czy w kursorze pozostały jeszcze jakieś wiersze. Jeżeli kursor nie zawiera już żadnych danych, to zwraca true, jeżeli w kursorze pozostał jeszcze jakiś wiersz, zwraca false. FOUND sprawdza, czy w kursorze pozostały jeszcze jakieś dane, zwraca true jeżeli tak, false przeciwnie. CURSOR kursor1 IS SELECT * FROM countries; kraj countries%rowtype; ile INT; OPEN kursor1; IF kursor1%isopen THEN Dbms_Output.put_line( otwarty ); END IF; FETCH kursor1 INTO kraj; ile:=kursor1%rowcount; CLOSE kursor1; Dbms_Output.put_line(ile); Kursory sparametryzowane Kursory sparametryzowane Poniższy kod wyświetla id oraz nazwę każdego kraju z regionu nr 1. CURSOR kraje1 IS SELECT * FROM countries WHERE region_id=1; FOR kraj IN kraje1 LOOP Dbms_Output.put_line( kraj.country_id kraj.country_name); END LOOP; Chcemy zmienić id regionu w warunku WHERE kursora, aby mieć możliwość wyboru krajów także z innych regionów. W tym celu można użyć kursora sparametryzowanego. CURSOR kraje2(id INT) IS SELECT * FROM countries WHERE region_id =id; FOR kraj IN kraje2(2) LOOP Dbms_Output.put_line( kraj.country_id kraj.country_name); END LOOP; Kursor kraje2 jest kursorem sparametryzowanym, z parametrem id.
12 Kursory sparametryzowane Możliwe jest określenie więcej niż jednego parametru kursora, np.: CURSOR c1 (dzial CHAR, zarobki NUMBER) IS SELECT * FROM employee WHERE dept_no=dzial AND salary >=zarobki; Używając kursora, należy przekazać wartości wszystkich parametrów, np. otwarcie kursora c1: OPEN c1( 100,2500); Można określić wartości domyślne dla parametrów kursora: CURSOR c1 (dzial CHAR, zarobki NUMBER DEFAULT 2000) IS SELECT * FROM employee WHERE dept_no=dzial AND salary >=zarobki;
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
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
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
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
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?
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
Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów
Plan wykładu Kursory: deklaracja, otwieranie, pobieranie danych, zamykanie Kursory: atrybuty Kursory: pętle, rekordy Kursory z parametrami BAZY DANYCH II WYKŁAD 4 dr inż. Agnieszka Bołtuć Co to jest kursor?
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
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
Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH
Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata
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
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
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
Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone
Plan wykładu Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone BAZY DANYCH II WYKŁAD 5 dr inż. Agnieszka Bołtuć Kolekcje Tablice asocjacyjne Używane w celu gromadzenia danych tego samego typu, Rekordy
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ż
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
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
Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL
Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Wykorzystanie SQL w PL/SQL Kursory Wyjątki Projekt fizyczny bazy danych Braki projektu
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,
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
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.
1. ELEMENTY JĘZYKA PL/SQL
1. ELEMENTY JĘZYKA PL/SQL Aplikacje korzystające z PL/SQL będącego proceduralnym rozszerzeniem SQL mogą wykonywać procedury i funkcje języka PL/SQL składowane w bazie danych oraz wysyłać własne programy
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.
Kursor. Rozdział 10a Kursory. Otwieranie kursora. Deklarowanie kursora
Kursor Rozdział 10a Kursory Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, zmienne kursorowe, wyrażenie CURSOR Każde zapytanie SQL umieszczone
Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.
1/40 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Październik 2015 2/40 Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Wykorzystanie 3/40 Projekt
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ą
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
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
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.
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.;
Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1
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
1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...
Plan wykładu Spis treści 1 Kursory 1 2 Wyjątki 4 2.1 Wyjątki predefiniowane............................. 4 2.2 Wyjątki niezdefiniowane wcześniej....................... 5 2.3 Definiowanie własnych wyjątków........................
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Kolekcje Operacje na kolekcjach Testowanie kolekcji Kolekcje w bazie danych Funkcje tabelaryczne Kolekcje wielopoziomowe - 2 -
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Rekordy Tabele indeksowe asocjacyjne - 2 - Rekordy Co to jest rekord? Rodzaje rekordów Rekordy użytkownika Rekordy tabelowe Rekordy
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
Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.
Wprowadzenie do języka PL/SQL Język PL/SQL Wprowadzenie Język PL/SQL to rozszerzenie SQL o elementy programowania proceduralnego i obiektowego. PL/SQL umożliwia wykorzystanie: zmiennych i stałych struktur
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
PL/SQL. Lidia Małkiewicz i Cezary Skubała
PL/SQL Lidia Małkiewicz i Cezary Skubała Jest językiem trzeciej generacji (3GL), który udostępnia konstrukty programistyczne, włączając w to deklaracje zmiennych, pętlę, obsługę błędów itd. Obecnie PL/SQL
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Oracle Developer Suite. Budowa aplikacji użytkownika końcowego
Oracle Developer Suite Budowa aplikacji użytkownika końcowego Składniki pakietu Oracle Developer Suite Oracle Forms Builder formularze (aplikacje dostępne z poziomu przeglądarki internetowej, model 3-warstwowy)
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]...
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
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Wprowadzenie Tworzenie i wykonywanie procedur i funkcji Instrukcja RETURN Parametry procedur i funkcji oraz ich przesyłanie Metadane
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 -
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
W PostgreSQL mamy do dyspozycji nie tylko funkcje wbudowane, ale również możemy tworzyć własne. Są one zapisywane w tabeli systemowej pg_proc.
PROCEDURY W PostgreSQL mamy do dyspozycji nie tylko funkcje wbudowane, ale również możemy tworzyć własne. Są one zapisywane w tabeli systemowej pg_proc. \df Aby wyświetlić wszystkie funkcje z argumentami
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.
PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń
PL/SQL Część 1 Bloki PL/SQL Piotr Medoń Cele Zapoznanie się z podstawowymi typami PL/SQL Zapoznanie się z blokiem PL/SQL Zapoznanie się z instrukcjami sterującymi wykonaniem 2 Blok PL/SQL Struktura bloku
Zaawansowane bazy danych i hurtownie danych semestr I
Ważne informacje Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I WYKŁAD 1: Wprowadzenie do przedmiotu, proceduralny język SQL 1. Sylabus w USOS ie: Ogólny
Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,
Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe
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)
Laboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
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
Język PL/SQL Wprowadzenie
Język PL/SQL Wprowadzenie Koncepcja języka, zmienne i stałe, typy zmiennych, nadawanie wartości zmiennym, instrukcje warunkowe, pętle, sterowanie przebiegiem programu 1 Wprowadzenie do języka PL/SQL Język
Kursory - pobieranie danych z baz danych do programów PL/SQL
Kursory - pobieranie danych z baz danych do programów PL/SQL Rozważania będą dotyczyć sposobów pobierania danych z baz danych do programów przechowywanych w pamięci. Interakcja języka PL/SQL z językiem
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
Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku
Plan wykładu BAZY DANYCH II WYKŁAD 2 Bloki, struktura, sekcje Bloki anonimowe Tworzenie i uruchamianie Identyfikatory Literały Typy danych dr inż. Agnieszka Bołtuć Bloki Struktura bloku W programach pisanych
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
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
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
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
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Język PL/SQL Wprowadzenie
Język PL/SQL Wprowadzenie Koncepcja języka, zmienne i stałe, typy zmiennych, nadawanie wartości zmiennym, instrukcje warunkowe, pętle, sterowanie przebiegiem programu 1 Wprowadzenie do języka PL/SQL Język
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
Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie
Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną
41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)
Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny
LibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Tabele wykorzystywane w przykładach
Tabele wykorzystywane w przykładach create table departamenty( dep_id serial primary key, nazwa_departamentu text ); Tabele używane w wybranych przkładach create table pracownicy ( emp_id serial primary
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
Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Materiały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Podprogramy. Rozdział 11 Procedury i funkcje składowane
Podprogramy Rozdział 11 Procedury i funkcje składowane Podprogramy, procedury składowane, funkcje składowane, wywoływanie podprogramów Przez podprogramy rozumiemy głównie: procedury (wykonują określone
Język PL/SQL. Rozdział 4. Procedury i funkcje składowane
Język PL/SQL. Rozdział 4. Procedury i funkcje składowane Podprogramy, procedury składowane, funkcje składowane, wywoływanie podprogramów. (c) Instytut Informatyki Politechniki Poznańskiej 1 Podprogramy
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
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 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca
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
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
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
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
1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3
cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot
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
Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL 2012-01-20
Plan wykładu BAZY DANYCH II WYKŁAD 9 Dynamiczny SQL, NDS, EXECUTE IMMEDIATE, Pakiet DBMS_SQL, Obiekty w PL/SQL, Tworzenie, wywoływanie, dziedziczenie, etc. dr inż. Agnieszka Bołtuć Dynamiczny SQL Pozwala
Ref. 7 - Język SQL - polecenia DDL i DML
Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość
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
Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych
Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł
Ćwiczenia 2 IBM DB2 Data Studio
Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Język SQL, zajęcia nr 1
Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
2 PL/SQL - podstawy Zmienne i stałe Operatory SQL w PL/SQL Instrukcje sterujące... 8
Plan wykładu Spis treści 1 Wprowadzenie 1 2 PL/SQL - podstawy 1 2.1 Zmienne i stałe................................. 3 2.2 Operatory.................................... 6 2.3 SQL w PL/SQL.................................
D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?
D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się
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
Paweł Rajba
Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie
Wykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
Wprowadzenie do języka PL/SQL. Rozdział 9 Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL
Wprowadzenie do języka PL/SQL Rozdział 9 Język PL/SQL Wprowadzenie Język PL/SQL to rozszerzenie SQL o elementy programowania proceduralnego i obiektowego. PL/SQL umoŝliwia wykorzystanie: zmiennych i stałych
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
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
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ą