Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Podobne dokumenty
Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

PL/SQL. Lidia Małkiewicz i Cezary Skubała

Bloki anonimowe w PL/SQL

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

PODSTAWY BAZ DANYCH 13. PL/SQL

1. ELEMENTY JĘZYKA PL/SQL

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów

PL/SQL. Zaawansowane tematy PL/SQL

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

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

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Październik Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

2 PL/SQL - podstawy Zmienne i stałe Operatory SQL w PL/SQL Instrukcje sterujące... 8

Pakiety podprogramów Dynamiczny SQL

Język PL/SQL Wprowadzenie

11 marca Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Język PL/SQL Wprowadzenie

Oracle11g: Programowanie w PL/SQL

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Bazy danych 2 Laboratorium 2

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Procedury i funkcje składowane

Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba.

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Oracle PL/SQL. Paweł Rajba.

15. Funkcje i procedury składowane PL/SQL

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

Deklarowanie kursora

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Plan wykładu BAZY DANYCH II WYKŁAD 6. Co to są wyjątki? Co to są wyjątki?

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Język PL/SQL Procedury i funkcje składowane

Zaawansowane bazy danych i hurtownie danych semestr I

Wprowadzenie do języka PL/SQL. Rozdział 9 Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL

Język PL/SQL. Rozdział 1. Wprowadzenie do języka PL/SQL

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bloki anonimowe w PL/SQL

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów

Typy danych w języku PL/SQL

Oracle10g: Programowanie w PL/SQL

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Wprowadzenie do języka PL/SQL. Rozdział 9 Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Ćwiczenie 11 PL/SQL. Wprowadzenie do języka PL/SQL

Zaawansowane bazy danych i hurtownie danych semestr I

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Język SQL. Rozdział 2. Proste zapytania

Składowane procedury i funkcje

Oracle PL/SQL. Paweł Rajba.

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Język PL/SQL. Rozdział 2. Kursory

Podstawowe właściwości języka PL/SQL

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

Tworzenie raportów XML Publisher przy użyciu Data Templates

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Kursor. Rozdział 10a Kursory. Otwieranie kursora. Deklarowanie kursora

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Język PL/SQL. Rozdział 3. Obsługa błędów wykonania Wyjątki predefiniowane i użytkownika, zgłaszanie i obsługa wyjątków.

Oracle PL/SQL. Paweł Rajba.

1 Podstawy c++ w pigułce.

Język PL/SQL. Rozdział 4. Procedury i funkcje składowane

BAZY DANYCH W APLIKACJACH SIECIOWYCH

Systemy GIS Tworzenie zapytań w bazach danych

Administracja i programowanie pod Microsoft SQL Server 2000

1. Wyzwalacze BD (ang. triggers)

Wykład 5. SQL praca z tabelami 2

Typy Oracle atrybutów relacji Typ NUMBER (1)

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Celem ćwiczenia jest wprowadzeniem do programowaniu w języku PL/SQL. Język PL/SQL umoŝliwia tworzenie programów, przetwarzających dane w bazie danych.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Typy Oracle atrybutów relacji Typ NUMBER (1)

Język PL/SQL Pakiety podprogramów

Wprowadzenie do języka Java

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia 2 IBM DB2 Data Studio

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Technologie baz danych WYKŁAD 7: Wyjątki

Transkrypt:

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 w PL/SQL podstawową jednostką jest blok, Program składa się przynajmniej z jednego bloku, Bloki mogą być zagnieżdżone, Bloki mogą być wykonywane tylko raz, bez zapisywania, Bloki mogą być też zapisywane w bazie w celu ich późniejszego wykorzystania, Bloki obsługują wszystkie instrukcje DML, a także DDL (za pomocą specjalnego pakietu). DECLARE (opcjonalne) deklaracje zmiennych, kursory, wyjątki BEGIN (wymagany) wyrażenia SQL i PL/SQL EXCEPTION (opcjonalny) obsługa wyjątków END; (wymagany) 1

Minimalna struktura bloku Sekcja deklaracji BEGIN NULL; END; BEGIN END; Każdy blok musi zawierać przynajmniej jedno wykonywalne polecenie, inaczej zostanie wygenerowany błąd. Jest to sekcja opcjonalna, Umieszczamy w niej zmienne i ich typy, stałe, kursory, wyjątki definiowane przez użytkownika, wszystko to do czego odwołujemy się w kolejnej sekcji bloku, Oprócz deklaracji zmiennych można dokonać w tym miejscu także ich inicjalizacji. DECLARE v_zmienna TIMESTAMP; Sekcja wykonawcza Jest niezbędna, Rozpoczyna się od słowa kluczowego BEGIN, Musi posiadać co najmniej jedną instrukcję, Może zawierać dowolną liczbę bloków PL/SQL, Może zawierać polecenia SQL aby pobierać dane z bazy lub/i PL/SQL aby przetwarzać je w bloku, Sekcja wyjątków Opcjonalna, Jest zagnieżdżona w sekcji wykonywalnej, Rozpoczyna się od słowa kluczowego EXCEPTION, Pozwala na przechwytywanie błędów i nienormalnych zachowań wygenerowanych w sekcji wykonawczej, Błędy przechwytywane są za pomocą funkcji dostępnych pakietach lub instrukcji dyrektyw. 2

Podstawowe typy bloków Bloki anonimowe Bloki anonimowe, Bloki nazwane: procedury, funkcje. Nie posiadają nazwy i nie są przechowywane w bazie danych, Można w nich wywoływać inne programy, ale ich nigdzie nie można wywołać, Są kompilowane za każdym razem gdy program jest uruchamiany, Ich struktura jest taka jak na poprzednim slajdzie. Przykład Tworzenie i uruchamianie SET SERVEROUTPUT ON DECLARE v_imie VARCHAR2(20); włącza wyjście serwera BEGIN SELECT first_name INTO v_imie FROM employees WHERE employee_id=200; pobiera imię pracownika nr 200 do zmiennej v_imie DBMS_OUTPUT.PUT_LINE(v_imie); END; procedura z wbudowanego pakietu Oracle Okno główne programu Oracle Express Edition SQL Command 3

Tworzenie i uruchamianie Tworzenie i uruchamianie Okno główne programu Oracle SQL Developer Run Script Okno główne programu SQL*Plus Zasady języka Identyfikatory Znaki specjalne Słowa zarezerwowane Ograniczniki Literały Komentarze Identyfikatory Służą do nazywania zmiennych, kursorów, funkcji, procedur, etc., Zasady tworzenia: <30 znaków Rozpoczynają się literą Mogą zawierać znaki $,#,_ i cyfry (oprócz pierwszej pozycji), Nie mogą zawierać znaków przestankowych, odstępów i myślników, Nie mogą zawierać słów zarezerwowanych, Wyjątek to identyfikatory w cudzysłowach, gdzie można stosować prawie wszystko. 4

Znaki i słowa zarezerwowane Ograniczniki Są to identyfikatory interpretowane jako polecenia które mają inny specjalny cel, Jeśli użyjemy je w aplikacji jako np. nazwę zmiennej to wystąpią błędy, Mogą zmieniać się biorąc pod uwagę wersje, Najlepszą praktyką jest przyjmowanie specjalnej konwencji nazw, tzn. Zmienna v_nazwa Stała c_nazwa Kursor cur_nazwa Itd. +,-,*,/ - operatory matematyczne, >,<,<>,=,!= - operatory relacji, --, /*, */ - komentarze, <<, >> - etykiety, % - atrybuty (TYPE, etc.), ogranicznik łańcuchów znaków, ogranicznik identyfikatorów, := - przypisanie, inicjalizacja zamiennej, - łączenie łańcuchów znaków, Literały Literały Wartości nie reprezentowane przez identyfikator, Znaki i łańcuchy znaków zapisujemy w pojedynczych apostrofach, DBMS_OUTPUT.PUT_LINE( Równanie Laplace a ) błąd, DBMS_OUTPUT.PUT_LINE( Równanie Laplace a ) stosujemy dwa apostrofy, nie cudzysłów, DBMS_OUTPUT.PUT_LINE(q!Równanie Laplace a! ) DBMS_OUTPUT.PUT_LINE(q [Równanie Laplace a ] ) - od wersji 10g DBMS_OUTPUT.PUT_LINE(q <Równanie Laplace a> ) Wartości logiczne w PL/SQL to TRUE, FALSE i NULL, Związane z datą i czasem: np. 2004-06-05, etc. 5

Deklaracja i używanie zmiennych Deklaracja i używanie zmiennych identyfikator [CONSTANT] typ_danych [NOT NULL] [:= DEFAULT wartość]; DECLARE v_data_urodzenia DATE; v_numer_pozycji NUMBER(2) NOT NULL :=10; v_nazwa VARCHAR2(10) DEFAULT kot ; c_numer CONSTANT NUMBER(3) :=100; zmienna musi być zainicjalizowana DECLARE v_nazwa NUMBER(2); BEGIN v_nazwa:=120; DBMS_OUTPUT.PUT_LINE( Ta liczba to v_nazwa); END; stała musi być zainicjalizowana Dobre nawyki i zasady - zmienne Typy danych języka PL/SQL Nazwy identyfikatorów powinny być samoopisowe, Używaj konwencji v_ do zmiennej, c_ do stałej, etc., Inicjuj wartość, gdy deklarujesz zmienną NOT NULL lub stałą, Nie używaj nazw kolumn do nazywania zmiennych, Typy skalarne, Typy referencyjne, Typy złożone, Typy LOB. 6

Typy skalarne Znaki i łańcuchy znaków Znaki i łańcuchy znaków, Liczby, Typy logiczne, Data i czas. CHAR [(max długość)] - typ danych o stałej liczbie znaków, pojemność określamy w bajtach, maksymalnie 32,767 bajtów VARCHAR2 (max długość) typ danych w Oracle 10g, i inne nie stosowane lub nie zalecane, np. LONG, LONG ROW, Typy liczbowe Typy liczbowe oraz logiczne NUMBER [(precyzja, skala)] precyzja wartości od 1 do 38, skala -84 do 127, identyczny z typem NUMBER bazy danych, BINARY_INTEGER wartości z przedziału od -2147483647 do + 2147483647, przechowywane w postaci binarnej, PLS_INTEGER zalecany przez Oracle typ, stosowany w obrębie bloku, bez zapisu do bazy, BINARY_DOUBLE, BINARY_FLOAT nowość od wersji Oracle 10g, typ zmiennoprzecinkowy o podwójnej (pojedynczej) precyzji zgodny z IEEE-754, BOOLEAN przyjmuje wartości TRUE, FALSE, NULL. 7

Data i czas Data i czas DATE podstawowy typ dotyczący daty i czasu, możne przechowywać rok, miesiąc, dzień, godzinę, minutę, sekundę, TIMESTAMP: TIMESTAMP [(precyzja)] rozszerzenie typu DATE o ułamki sekund, w tym celu określa się precyzję 0-9, domyślnie 6, TIMESTAMP WITH TIME ZONE jak wyżej, tylko uwzględnia czas lokalny względem strefy UTC, TIMESTAMP WITH LOCAL ZONE jak wyżej, tylko odpowiada lokalizacji klienta korzystającego z sewera bazodanowego. INTERVAL: INTERVAL YEAR TO MONTH zwraca różnicę pomiędzy datami, uwzględnia wartości od lat do miesięcy, INTERVAL DAY TO SECOND - zwraca różnicę pomiędzy datami, uwzględnia wartości od dni do sekund, Typy danych - przykłady Typy złożone v_time DATE :=SYSDATE+5; v_znak VARCHAR2(5) NOT NULL := znak ; v_liczba PLS_INTEGER; v_logika BOOLEAN :=TRUE; c_stala CONSTANT NUMBER(5,2) :=0; Rekordy, Kolekcje: tabele zagnieżdżone, indeksowane, tablice VARRAY. 8

Typ zakotwiczony Typ zakotwiczony %TYPE jeśli deklarowana zmienna jest bezpośrednim odwzorowaniem kolumny z bazy danych można zakotwiczyć typ zmiennej do typu bazy danych kolumny, identyfikator tabela.kolumna%type; v_nazwisko employees.last_name%type; v_id employees.employee_id%type :=0; Zalety: Przydatne przy zmienianiu typu danych w tabeli, Przydatne przy zmianie precyzji, Przy tworzeniu dużych bloków daje oszczędność czasu i odporność na błędy, Typ zakotwiczony Typ zakotwiczony %ROWTYPE zakotwicza zmienną do wszystkich kolumn tabeli, identyfikator tabela%rowtype; employees_record employees%rowtype; jobs_record jobs%rowtype; Zalety: Nie musi być znana liczba i typy kolumn przy deklaracji zmiennej rekordowej, Szczególnie przydatne przy pobieraniu wiersza za pomocą klauzuli SELECT oraz INSERT i UPDATE. 9

Wykorzystana literatura J. Price, Oracle Database 11g i SQL. Programowanie. Helion, 2009. S. Urman, R. Hardman, M. McLaughlin, Oracle Database 10g. Programowanie w języku PL/SQL. Helion, 2008. www.oracle.com 10