Haladó DBMS ismeretek 1

Hasonló dokumentumok
PL/SQL 1. rész. Procedural Language extension to SQL

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

Együttes hozzárendelés

PL/SQL (folytatás) Kurzorok, függvények, eljárások

Tranzakciókezelés PL/SQL-ben

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

PL/SQL blokk. [címke] [DECLARE deklarációs utasítás(ok)] BEGIN végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név];

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;...

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis Rendszerek II. 3. PLSQL alapok 92/1B IT MAN

8-9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

B I T M A N B I v: T M A N

Adatbázis használat I. 5. gyakorlat

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Tankönyvben: SQL/PSM Gyakorlaton: Oracle PL/SQL

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Bevezetés: az SQL-be

Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Kalmár György Adatbázis alapú rendszerek

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázisban tárolt kollekciók

Kivételkezelés 2. SQLCODE lehetséges értékei:

B I T M A N B I v: T M A N

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

Hatékony PL/SQL programok írása

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

PL/SQL feladatok 8. gyakorlat

Adatbázis Rendszerek II. 2. Gyakorló környezet

Adatbázisok* tulajdonságai

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Programozási nyelvek I. (Az Ada) Kozsik Tamás

Programozási nyelvek (ADA)

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Objektumorientált Programozás III.

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

A programozás alapjai

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Programozási nyelvek (ADA)

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

SQL OO elemei aktív komponensek

Adatbázisok webalkalmazásokban

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

A PL/SQL motor. A PL/SQL nyelvű egységek fordítását és futtatását végző rendszer. az adatbázis-kezelőben fejlesztőeszközben (pl.

Programozási nyelvek JAVA EA+GY 1. gyakolat

Az SQL adatbázisnyelv: DML

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Database Systems II. ZH összefoglaló

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

BASH script programozás II. Vezérlési szerkezetek

Algoritmizálás és adatmodellezés tanítása 1. előadás

Adatbázisok elmélete 9. előadás

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

A C programozási nyelv II. Utasítások. A függvény.

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A 1-1

Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis-kezelés, információs-rendszerek

B I T M A N B I v: T M A N

Adatbázis Rendszerek II. 4. Ea: MySQL Tárolt eljárások 110/1 B IT MAN

Informatika terméktervezőknek

A C# programozási nyelv alapjai

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Kliens oldali SQL-API

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)


Adatbázisok elmélete 10. előadás

Adatbázis Rendszerek II. 8. Gyakorló környezet

Internet programozása. 3. előadás

Hozzunk ki többet abból amink van. Fehér Lajos

Adatbázis-kezelés. Harmadik előadás

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázisok elmélete 9. előadás

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adattípusok. Tartomány, műveletek, reprezentáció Altípus: azonos műveletek és reprezentáció, szűkebb tartomány Osztályozás:

C programozási nyelv

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

Java és web programozás

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Összetett típusok Rekordtípus

Bevezetés: Relációs adatmodell

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Az SQL*Plus használata

SQL/PSM kurzorok rész

Átírás:

Haladó DBMS ismeretek 1

Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények

Ajánlott irodalom Juhász István - Gábor András: PL/SQL-programozás www.oracle.com/pls/db112/homepage

A tárgy előfeltétele Adatbázisrendszerek című tantárgy Emellett szükséges előismeretek: deklaráció, kifejezések, vezérlési szerkezetek, alprogramok, kivételkezelés, hatáskör, élettartam, stb.

PL/SQL: PL/SQL Procedurális nyelv (Procedural Language for SQL) Kombinálja az SQL adatmanipulációt a procedurális nyelvi feldolgozással. Ada-szerű szintakszis

PL/SQL Blokkszerkezetű nyelv A következő kontrukciókkal egészíti ki az SQL-t: változók és típusok vezérlési szerkezetek alprogramok és csomagok kurzorok és kurzorváltozók kivételkezelés objektumorientált eszközök

PL/SQL blokk [címke] [DECLARE deklarációs utasítás(ok)] BEGIN végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név];

PL/SQL blokk példák 1. Példa BEGIN null; END; / 2. Példa <<pelda>> BEGIN delete from orszagok; END; /

Deklarációs rész típus definíció változó deklaráció nevesített konstans deklaráció kivétel deklaráció kurzor definíció alprogram definíció (pragma)

Nevesített konstans és változó Változó név típus [[NOT NULL] {:= DEFAULT} kifejezés]; Pl: szuletesi_ido DATE; dolgozok_szama NUMBER NOT NULL DEFAULT 0; Nevesített konstans név CONSTANT típus [NOT NULL] {:= DEFAULT} kifejezés; Pl: max_napok_szama CONSTANT NUMBER := 366;

Típusok Az eddig tanult SQL típusok: VARCHAR2 CHAR NUMBER DATE Később lesz szó a többiről

DBMS_OUTPUT csomag A PL/SQL nem tartalmaz I/O utasításokat. A DBMS_OUTPUT csomag segítségével üzenetet helyezhetünk el egy belső pufferbe. A PUT_LINE eljárással helyezhetünk el üzenetet a pufferben. A puffer tartalmát megjeleníthetjük a képernyőn a következő SQL*Plus utasítással: SET SERVEROUTPUT ON

DBMS_OUTPUT példa BEGIN DBMS_OUTPUT.PUT_LINE('Sziasztok'); END; /

Utasítások Üres NULL; Értékadó x := 10; Ugró GOTO cimke; Elágaztató Feltételes Ciklusok Case utasítás SQL utasítások

Feltételes elágaztató utasítás IF feltétel THEN utasítás [utasítás] [ELSIF feltétel THEN utasítás [utasítás] ] [ELSE utasítás [utasítás] ] END IF;

Feltételes elágaztató utasítás DECLARE v_nagyobb NUMBER; x NUMBER:=7; y NUMBER:=6; BEGIN v_nagyobb := x; IF x < y THEN v_nagyobb := y; END IF; END; /

Feltételes elágaztató utasítás DECLARE v_nagyobb NUMBER; x NUMBER:=5; y NUMBER:=6; BEGIN IF x < y THEN v_nagyobb := y; ELSE v_nagyobb := x; END IF; END; /

Feltételes elágaztató utasítás DECLARE v_nagyobb NUMBER; x NUMBER:=5; y NUMBER:=7; BEGIN IF x < y THEN DBMS_OUTPUT.PUT_LINE('x kisebb, mint y'); v_nagyobb:= x; ELSIF x > y THEN DBMS_OUTPUT.PUT_LINE('x nagyobb, mint y'); v_nagyobb:= y; ELSE DBMS_OUTPUT.PUT_LINE('x és y egyenlők'); v_nagyobb:= x; END IF; END; /

Feltételes elágaztató utasítás DECLARE v_nagyobb NUMBER; x NUMBER:=5; y NUMBER:=7; z NUMBER:=6; BEGIN IF x > y THEN IF x > z THEN v_nagyobb := x; ELSE v_nagyobb := z; END IF; ELSE IF y > z THEN v_nagyobb := y; ELSE v_nagyobb := z; END IF; END IF; END; /

A CASE utasítás CASE [szelektor_kifejezés] WHEN {kifejezés feltétel} THEN utasítás [utasítás] [WHEN {kifejezés feltétel} THEN utasítás [utasítás] ] [ELSE utasítás [utasítás] ] END CASE;

A CASE utasítás 1. példa BEGIN CASE 2 WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('2 = 1'); WHEN 1+2 THEN DBMS_OUTPUT.PUT_LINE('2 = 1 + 2 '); ELSE DBMS_OUTPUT.PUT_LINE('egyik sem'); END CASE; END; /

A CASE utasítás 2. példa DECLARE v_szam NUMBER; BEGIN v_szam := 10; CASE WHEN v_szam MOD 2 = 0 THEN DBMS_OUTPUT.PUT_LINE('Páros.'); WHEN v_szam < 5 THEN DBMS_OUTPUT.PUT_LINE('Kisebb 5-nél.'); WHEN v_szam > 5 THEN DBMS_OUTPUT.PUT_LINE('Nagyobb 5-nél.'); ELSE DBMS_OUTPUT.PUT_LINE('Ez csak az 5 lehet.'); END CASE; END; /

Ciklusok Alapciklus (végtelen ciklus) WHILE ciklus FOR ciklus Kurzor FOR ciklus (később) Kilépni: EXIT [WHEN feltétel]; Folytatni: CONTINUE [WHEN feltétel];

Alapciklus (végtelen ciklus) Alakja: [címke] LOOP utasítás [utasítás] END LOOP [címke]; Példa: declare a number(5):=10; b number(5):=10; begin loop b:=b/a; a:=a-1; end loop; end;

WHILE ciklus Alakja: [címke] WHILE feltétel LOOP utasítás [utasítás] END LOOP[címke];

WHILE ciklus példa DECLARE v_faktorialis NUMBER(5); i PLS_INTEGER; BEGIN i := 1; v_faktorialis := 1; WHILE v_faktorialis * i < 10**5 LOOP v_faktorialis := v_faktorialis * i; i := i + 1; END LOOP; END; /

FOR ciklus Alakja: [címke] FOR ciklusváltozó IN [REVERSE] alsó_határ..felső_határ LOOP utasítás [utasítás] END LOOP [címke];

FOR ciklus példa 1. DECLARE v_osszeg NUMBER(10):=0; BEGIN FOR i IN 1..100 LOOP v_osszeg := v_osszeg + i; END LOOP; END; /

FOR ciklus példa 1. DECLARE v_osszeg NUMBER(10):=0; BEGIN FOR i IN REVERSE 1..100 LOOP v_osszeg := v_osszeg + i; END LOOP; END; /

EXIT utasítás Alakja: EXIT [címke] [WHEN feltétel];

EXIT utasítás 1. példa DECLARE v_osszeg PLS_INTEGER; i PLS_INTEGER; BEGIN i := 1; v_osszeg := 0; LOOP v_osszeg := v_osszeg + i; IF v_osszeg >= 100 THEN EXIT; -- elértük a célt END IF; i := i+1; END LOOP; END; /

EXIT utasítás 2. példa DECLARE v_osszeg PLS_INTEGER; i PLS_INTEGER; BEGIN i := 1; v_osszeg := 0; LOOP v_osszeg := v_osszeg + i; EXIT WHEN v_osszeg >= 100; -- elértük a célt i := i+1; END LOOP; END; /

EXIT utasítás 3. példa DECLARE v_osszeg PLS_INTEGER := 0; BEGIN <<kulso>> FOR i IN 1..100 LOOP FOR j IN 1..i LOOP v_osszeg := v_osszeg + i; EXIT kulso WHEN v_osszeg > 100; END LOOP; END LOOP; END; /

CONTINUE utasítás Alakja: CONTINUE [címke] [WHEN feltétel];

CONTINUE utasítás 1. példa DECLARE x NUMBER := 0; BEGIN LOOP DBMS_OUTPUT.PUT_LINE ('x=' x); x := x + 1; IF x < 3 THEN CONTINUE; END IF; DBMS_OUTPUT.PUT_LINE('After CONTINUE:x=' x); EXIT WHEN x = 5; END LOOP; DBMS_OUTPUT.PUT_LINE('After loop:x=' x); END; /

CONTINUE utasítás 2. példa DECLARE x NUMBER := 0; BEGIN LOOP DBMS_OUTPUT.PUT_LINE('x=' x); x := x + 1; CONTINUE WHEN x < 3; DBMS_OUTPUT.PUT_LINE('After CONTINUE:x=' x); EXIT WHEN x = 5; END LOOP; DBMS_OUTPUT.PUT_LINE('After loop:x=' x); END; /

SQL utasítások PL/SQL-ben DML INSERT, DELETE, UPDATE kiegészülnek egy RETURNING utasításrésszel, segítségével az érintett sorok alapján számított értéket kaphatunk meg MERGE UPSERT funkcionalitás SELECT kiegészül egy INTO (ill. BULK COLLECT INTO) utasításrésszel DCL COMMIT, ROLLBACK, SAVEPOINT