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.
|
|
- Bożena Bielecka
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 używamy \dd Aby wyświetlić komentarze na temat określonej funkcji używamy Tworzenie własnych funkcji przydaje się, gdy dane zapytanie lub jakieś obliczenia chcemy wykonywać wielokrotnie. Tworzenie funkcji CREATE [OR REPLACE] FUNCTION nazwa_funkcji ([typ_funkcji]) RETURNS typ_wyniku_funkcji AS definicja_funkcji LANGUAGE nazwa_języka ; Definicja_funkcji pojedynczy ciąg znaków, może obejmować kilka wierszy (zamknięty w apostrofy). Jeżeli w funkcji znajdują się apostrofy należy je wyróżnić (poprzedzić je dodatkowym apostrofem). Nazwa_języka dowolny ładowalny język proceduralny obsługiwany przez PostgreSQL. (np. SQL lub PL/pgSQL). Aby można było użyć dowolnie wybranego języka należy włączyć jego obsługę w PostgreSQL. Aby wyświetlić listę języków wyświetlamy zawartość tabeli systemowej pg_language SELECT * FROM pg_language; Przy pierwszym wywołaniu funkcji jest ona dopiero kompilowana do postaci wykonywalnej, a następnie wykonywana. Przykładowa funkcja dodająca 1 do podanej liczby (w języku PL/pgSQL) CREATE FUNCTION dodaj_jeden(int4) RETURNS int4 AS ' RETURN $1+1; 'LANGUAGE 'plpgsql Aby wyświetlić jej działanie dla liczby 3 używamy SELECT dodaj_jeden(3) AS wynik; 19 listopada 2012 Strona 1
2 Ale jeśli podamy argument innego typu : SELECT dodaj_jeden(3,1) AS wynik; Przeciążanie funkcji CREATE FUNCTION dodaj_jeden (float8) RETURNS float8 AS ' RETURN $1+1; 'LANGUAGE 'plpgsql Wykonując teraz SELECT dodaj_jeden(3.1) AS wynik; Otrzymamy Aby wyświetlić kod źródłowy funkcji tworzymy zapytanie do tabeli (pg_proc) w której zapisywane są procedury SELECT prosrc FROM pg_proc WHERE proname='dodaj_jeden Otrzymamy dwie procedury o tej samej nazwie 19 listopada 2012 Strona 2
3 Usuwanie funkcji DROP FUNCTION nazwa_funkcji (typ_funkcji); DROP FUNCTION dodaj_jeden(int4); W języku SQL Aby wykorzystać język SQL do tworzenia funkcji należy język procedury określić jako 'SQL'. Funkcje te przyjmują parametry, do których odwołujemy się poprzez $1, $2 itd. Nie istnieją instrukcje sterujące. Wartością zwracaną przez funkcję SQL są dane zwracane przez ostatnio wykonaną instrukcję SQL (zwykle SELECT). Jego zaletą jest brak ładowania procedury obsługi innych języków. Możliwe jest zwrócenie przez funkcję więcej niż jednego wiersza jeśli zadeklarujemy typ zwracanej wartości jako setof. CREATE FUNCTION klienci(text) RETURNS setof customer AS' SELECT * FROM customer WHERE town=$1; 'LANGUAGE 'SQL Uruchamiamy funkcję SELECT klienci('bingham'); I otrzymujemy 19 listopada 2012 Strona 3
4 Aby wyświetlić tylko nazwisko (określoną kolumnę) SELECT lname(klienci('bingham')) AS customer; Inny sposób: CREATE FUNCTION sum_n_product (x int, y int, OUT sum int, OUT product int) AS 'SELECT $1 + $2, $1 * $2' LANGUAGE SQL; SELECT * FROM sum_n_product (11,42); CREATE TYPE sum_prod AS (sum int, product int); CREATE FUNCTION sum_n_product1 (int, int) RETURNS sum_prod AS 'SELECT $1 + $2, $1 * $2' LANGUAGE SQL; SELECT * FROM sum_n_product1(11,42); W języku PL/pgSQL Jest to język blokowo-strukturalny (podobny do C lub Pascal), udostepniający dekaracje zmiennych i posiadający zakresy bloków. W języku PL/pqSQL nie jest ważna wielkość liter dla słów kluczowych. Komentarze w pojedynczym wierszu poprzedzone są dwoma minusami (--), a komentarze blokowe mają postać taką jak w C (/* */). Bloki mają strukturę: [etykieta] [ deklaracje] Instrukcje; [RETURN wyrażenie_zwracane]; Etykieta jak również deklaracje są opcjonalne dla każdego z bloków. Zmienne deklarowane w bloku są widoczne tylko w tym bloku, zmienne wewnętrzne (o tej samej nazwie co w bloku zewnętrznym) przesłaniają zmienne zewnętrzne. Instrukcja RETURN jest obowiązkowa dla najbardziej zewnętrznego bloku funkcji. Wartość zwracana musi być zgodna z zadeklarowanym typem wyniku. 19 listopada 2012 Strona 4
5 Aliasy tworzymy w celu polepszenia czytelności kodu używając : Nazwa_aliasu ALIAS FOR $n; Gdzie n jest numerem parametru wejściowego funkcji. Deklarujemy zmienne jako Nazwa_zmiennej [CONSTANT] typ [NOT NULL][:=wartość_zmiennej] Istnieje możliwość deklarowania typów zgodnych z typami innych elementów bazy danych (uniezależnia nas to od problemów w przypadku późniejszej zmiany typu jakiegoś elementu w bazie co mogłoby wywołać błędy w funkcjach wykorzystujących te elementy). Dla zmiennej prostej: Nazwa_zmiennej nazwa_elementu_bazy_danych%type Spowoduje utworzenie zmiennej o nazwie nazwa_zmiennej, której typ będzie identyczny jak typ elementu bazy danych o nazwie nazwa_elementu_bazy_danych. Dla zmiennej złożonej: Nazwa_zmiennej_złożonej nazwa_tabeli%rowtype Spowoduje utworzenie zmiennej o nazwie nazwa_zmiennej_złożonej posiadającej pola odpowiadające kolumnom tabeli o nazwie nazwa_tabeli. Instrukcje warunkowe: IF Instrukcje takie mogą być zagnieżdżane jak w innych językach programowania IF wyrażenie THEN instrukcje [ELSE instrukcje] END IF; CASE liczba par WHEN/THEN jest dowolna. Całość zwraca wartość wyrażenie w części THEN dla odpowiedniego wyrażenia WHEN, lub dla ELSE. CASE WHEN wyrażenie THEN wyrażenie WHEN wyrażenie THEN wyrażenie... ELSE wyrażenie 19 listopada 2012 Strona 5
6 Pętle: WHILE [etykieta] -- opcjonalna WHILE wyrażenie LOOP instrukcje END LOOP; FOR wykonywane dla każdej wartości z zakresu (od.. do), dla pętli tworzona jest nowa zmienna o naziw nazwa_zmiennej, która jest zwiększana (lub zmniejszana jeśli użyjemy opcjonalnego słowa REVERSE) o 1 po każdym wykonaniu pętli. FOR nazwa_zmiennej IN[REVERSE] od.. do LOOP instrukcje END LOOP; Funkcja bez argumentów CREATE OR REPLACE FUNCTION ex01() RETURNS text RETURN `HELLO!`; SELECT ex01(); Funkcja z argumentami CREATE OR REPLACE FUNCTION ex03(real) RETURNS real RETURN $1*$1; SELECT ex03(2.7); 19 listopada 2012 Strona 6
7 CREATE FUNCTION zmienne1(int4) RETURNS float8 AS ' n integer := 1; my_pi CONSTANT float8 = pi(); r ALIAS FOR $1; RETURN my_pi * r * r; ' LANGUAGE 'plpgsql SELECT zmienne1(1); ZAD1 Utworzyć funkcję zwracającą długość wektora o podanych współrzędnych x i y (parametry wejściowe i wartość zwracana są typu real) Aliasy parametrów wejściowych: CREATE OR REPLACE FUNCTION ex04(real) RETURNS real param ALIAS FOR $1; RETURN param*param; Typ zmiennej może być określony jako typ skopiowany z atrybutu tabeli. Składnia: zmienna tabela.atrybut%type CREATE TABLE ex05t ( id serial, name varchar(10), hiredate date ); CREATE OR REPLACE FUNCTION ex05(ex05t.name%type, ex05t.hiredate%type) RETURNS text RETURN $1 '' '' $2; SELECT ex05('julia',' '); 19 listopada 2012 Strona 7
8 Typ wierszowy PostgreSQL pozwala deklarować tzw. zmienne złożone, odpowiadające całym wierszom w określonej tabeli. Składnia: nazwa tabela%rowtype; ROWTYPE jest słowem kluczowym, tabela jest nazwą tabeli. Wynikiem tej deklaracji jest zmienna zawierająca pola, po jednym dla każdej kolumny tabeli, na podstawie której powstała. Aby skorzystać z pól, należy zastosować składnię: zmienna.pole. Innym rodzajem typu złożonego jest RECORD. Jest on podobny do ROWTYPE ale nie opiera się on na konkretnej tabeli. Typ ten jest wypełniany wartościami w czasie wykonania. CREATE TABLE ex06t (id serial,name varchar(10), hiredate date); INSERT INTO ex06t VALUES (DEFAULT,'KOWALSKI',' '); CREATE OR REPLACE FUNCTION ex06(ex06t) RETURNS text x ex06t; x.name := $1.name; x.hiredate=$1.hiredate; RETURN x.name '' zatrudniony od '' x.hiredate; SELECT ex06(t.*) FROM ex06t t; Kwerendy nie zwracające rezultatu Kwerendy, które nie zwracają żadnego rezultatu, mogą być wywoływane z wnętrza funkcji bezpośrednio. CREATE TABLE ex07t (id serial,name varchar(10),hiredate date); CREATE OR REPLACE FUNCTION ex07(varchar,date) RETURNS void INSERT INTO ex07t VALUES(DEFAULT,$1,$2); RETURN; SELECT ex07('kowalski',' '); SELECT * FROM ex07t; 19 listopada 2012 Strona 8
9 Kwerenda zwracająca 1 wiersz Rezultat kwerendy zwracającej 1 wiersz może być przypisany do zmiennej wierszowej, rekordowej lub listy wartości. Składnia: SELECT... INTO zmienna/lista FROM... Zmienna wierszowa i lista wartości muszą dokładnie odpowiadać zwracanemu wierszowi. Zmienna rekordowa zostanie dopasowana automatycznie CREATE TABLE ex08t (id serial,name varchar(10),hiredate date); INSERT INTO ex08t VALUES(DEFAULT,'KOWALSKI',' '); CREATE OR REPLACE FUNCTION ex08(varchar) RETURNS text val RECORD; SELECT * INTO val FROM ex08t WHERE name=$1; RETURN val.name '' zatrudniony '' val.hiredate; SELECT ex08('kowalski'); Status rezultatu kwerendy Aby określić status rezultatu kwerendy można skorzystać z kilku metod: Polecenie GET DIAGNOSTICS Składnia: GET DIAGNOSTICS zmienna = klucz; Kluczem może być: ROW_COUNT liczba wierszy RESULT_OID OID ostatnio wstawionego wiersza CREATE TABLE ex09t (id serial,name varchar(10),hiredate date); CREATE OR REPLACE FUNCTION ex09(varchar,date) RETURNS integer err integer; INSERT INTO ex09t VALUES(DEFAULT,$1,$2); GET DIAGNOSTICS err := ROW_COUNT; RETURN err; SELECT ex09('kowalski',' '); SELECT * FROM ex09t; 19 listopada 2012 Strona 9
10 Instrukcje warunkowe CREATE TABLE ex10t (id serial,name varchar(10),sal numeric); CREATE OR REPLACE FUNCTION ex10(varchar,numeric) RETURNS integer err integer; IF $2>=0 THEN INSERT INTO ex10t VALUES(DEFAULT,$1,$2); END IF; GET DIAGNOSTICS err := ROW_COUNT; RETURN err; SELECT ex10('kowalski',1200); SELECT ex10('karwowski',-500); SELECT * FROM ex10t; Pętle CREATE OR REPLACE FUNCTION ex11(integer,integer) RETURNS SETOF INTEGER FOR i IN $1.. $2 LOOP RETURN NEXT 2^i; END LOOP; RETURN; SELECT * FROM ex11(1,10); CREATE TABLE integers (i integer); CREATE OR REPLACE FUNCTION ex12() RETURNS VOID FOR i IN LOOP INSERT INTO integers VALUES (i); END LOOP; RETURN; SELECT ex12(); SELECT * FROM integers; 19 listopada 2012 Strona 10
11 Pętla FOR z kwerendą CREATE OR REPLACE FUNCTION ex14() RETURNS SETOF real arg RECORD; FOR arg IN SELECT * FROM integers LOOP RETURN NEXT arg.i/10.0; END LOOP; RETURN; SELECT * from ex14(); Informacje o produktach, których zaczyna brakować w magazynie (w tabeli stock) DROP TABLE reorders; CREATE TABLE reorders(item_id integer, message text); CREATE OR REPLACE FUNCTION reorders(int4) RETURNS integer AS ' min_stock ALIAS FOR $1; reorder_item integer; reorder_count integer; stock_row stock%rowtype; msg text; SELECT count(*) INTO reorder_count FROM stock WHERE quantity <=min_stock; FOR stock_row IN SELECT * FROM stock WHERE quantity<=min_stock LOOP item_row item%rowtype; SELECT * INTO item_row FROM item WHERE item_id=stock_row.item_id; msg:= '' Zamowic '' item_row.description; INSERT INTO reorders VALUES (stock_row.item_id,msg); END LOOP; RETURN reorder_count; 'LANGUAGE 'plpgsql Wywołując procedurę dla produktów, których jest w magazynie nie więcej niż 3 sztuki 19 listopada 2012 Strona 11
12 SELECT reorders(3); Otrzymujemy, że należy zamówić 3 produkty Po wyświetleniu zawartości tabeli reorders mamy: ZAD2 Utworzyć funkcję tablicującą wartości funkcji y = A*x^2+B*x+C dla wartości A,B,C podanych przez użytkownika i x w zakresie od 1 do 100. Rezultat ma być zwracany w postaci dwukolumnowej (jako x oraz wartość funkcji dla danego x). ZAD3 Utworzyć funkcję tablicującą wartości temperatury w skali Fahrenheita dla temperatur w Celsjusza w przedziale 1 do 100 co 0.1 stopnia ZAD4 Utworzyć bezargumentową funkcję liczba_studentow zwracającą liczbę studentów w tabeli szkola.studenci ZAD5 Utworzyć funkcję liczba_studentow_1 zwracającą liczbę studentów w podanej jako argument grupie ZAD6 Utworzyć funkcję srednia zwracającą średnią ocen studenta o nazwisku podanym jako argument funkcji ZAD7 Login studenta składa się z połączenia jego nazwiska i pierwszej litery imienia (wszystko małymi literami). Napisać funkcję generującą login na podstawie wiersza tabeli szkola.studenci. 19 listopada 2012 Strona 12
13 ZAD8 Utworzyć funkcję zwracającą (jako typ złożony zdefiniowany przez użytkownika) nazwisko studenta oraz średnią ocen studenta którego numer indeksu przekazany został jako argument funkcji ZAD9 Utworzyć funkcję zwracającą listę ocen studentów. Lista ma zawierać imię i nazwisko studenta, nazwę przedmiotu i ocenę. Wariant 1: Wykorzystać wcześniej zdefiniowany widok Wariant 2: Wykorzystać własny typ zwracanych danych 19 listopada 2012 Strona 13
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
Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,
Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających
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
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
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
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
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 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.;
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
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
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
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.
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
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
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
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
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.
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)
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
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
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
Bazy danych. dr inż. Arkadiusz Mirakowski
Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)
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
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,
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
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
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 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
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
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ą
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ł
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
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
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ż
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
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,
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
Struktura bazy danych
Procedury składowane, funkcje i wyzwalacze Struktura bazy danych Tabela Oddziały ID Nazwa Adres 10 POZNAN Kwiatowa 3 20 WARSZAWA al. Jerozolimskie 22 30 KRAKOW Planty 14 40 WROCLAW Nad Odra 16 50 GDANSK
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
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
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ąć
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
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
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
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
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
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)
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
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
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
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.................................
Obowiązuje od wersji
Obowiązuje od wersji 8.30.0 1. Wstęp czym są gniazda rozszerzeń?... 2 2. Edytor gniazd rozszerzeń - informacje podstawowe... 3 3. Dostępne rodzaje funkcji w gniazdach rozszerzeń... 6 3.1 Procedura SQL...
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
Odnawialne Źródła Energii I rok. Tutorial PostgreSQL
Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym
11 marca Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.
1/41 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 11 marca 2017 2/41 Plan wykładu 1 2 3 4 3/41 PL/SQL PL/SQL (ang. Procedural Language/Structured Query Language) - język programowania
CREATE TABLE autorzy ( id_autora SERIAL PRIMARY KEY, imie TEXT, nazwisko TEXT );
Projekt ilustruje przykładową bazę domowej biblioteczki. Baza ma za zadanie ułatwić skatalogowanie posiadanych książek wraz z podstawowymi informacjami na ich temat. Opis bazy: Książka może mieć wielu
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
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ę
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
Wykład 05 Bazy danych
Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o
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
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:
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ść
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
CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy
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]...
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
Ć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
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
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 (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
Imię i Nazwisko Data Ocena. Laboratorium 7
Imię i Nazwisko Data Ocena Laboratorium 7 Celem tego ćwiczenia jest pokazanie, że w MoscowML można pisać aplikacje użytkowe, np. prosty interpreter języka SQL (MLSQL) Listy i krotki Różnica pomiędzy krotkami
Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu
Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie
strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych
SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych
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,
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
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
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
Wprowadzenie do programowania w VBA
Wprowadzenie do programowania w VBA Spis treści Struktura programu... 1 Typy danych... 2 Deklaracja zmiennych i stałych... 2 Deklaracja tablic... 3 Instrukcja przypisania... 3 Wprowadzanie danych... 3
Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny
Schemat bazy danych, wczytanej z pliku create_tables.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT
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
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
Ć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.
Bazy danych programowanie Wykład dla studentów matematyk
Bazy danych programowanie Wykład dla studentów matematyki 23 kwietnia 2017 Funkcje Funkcje definiuje się w Postgresie używajac konstrukcji CREATE FUNCTION nazwa(parametr typ,...) RETURNS typ-wyniku AS
Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja
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
Przestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
Przydatne sztuczki - sql. Na przykładzie postgres a.
Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie
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 -
Baza danych hotel Maciej Gerus 258583
Baza danych hotel Maciej Gerus 258583 Baza ta składa się z 7 tabel (jak widać na rysunku) i pozwala wirtualnie zapisywać (oraz analizować) niektóre uproszczone elementy pracy przedsiębiorstwa oferującego
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
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ą
Metody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do
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,
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:
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.
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