2006. május 1. TARTALOM

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "2006. május 1. TARTALOM"

Átírás

1 KENDE MÁRIA - NAGY ISTVÁN PL/SQL FELADATGYŰJTEMÉNY TARTALOM 9. Foglalkozás Hivatkozási és összetett adattípusok, kurzor, ROWID Foglalkozás Összefoglaló feladatok Melléklet Dinamikus SQL Irodalom május 1. #03_PL-SQL Feladatgyűjtemény [06] - 1 -

2 9. Foglalkozás Hivatkozási és összetett adattípusok, kurzor, ROWID Részletesebben lásd [2]: 9. fejezet, FELADATGYŰJTEMÉNY 9.1. Feladat Írjon egy olyan PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát, és minden dolgozó fizetését megemeli a saját fizetésének véletlenszám (0-100) értékű százalékával Feladat Írjon PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát, és megnöveli a felhasználó által megadott azonosítójú főnök minden beosztottjának fizetését azok átlagfizetésének 10%-val Feladat Írjon PL/SQL programot, mely az emp táblából létrehoz egy dolgozó táblát, és megnöveli a felhasználó által megadott nevű főnök minden beosztottjának fizetését azok átlagfizetésének 10%-val. TOVÁBBI FELADATOK T9.4. Feladat Írjon egy olyan PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát és bővíti egy nyeremény oszloppal. A nyeremény a beosztottak számára a főnökök átlagfizetésének véletlenszerű százaléka (0-50), a főnököknek pedig a beosztottak összfizetésének véletlenszerű százaléka (10-50). Listázza a dolgozó táblát a nyereményhúzás előtt és után is. T9.5. Feladat Írjon egy olyan PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát és bővíti egy pár nevű oszloppal. Ezt az oszlopot töltse fel az oooo karaktersorozattal. Egy kereső dolgozó partnere az, aki ugyanabban a munkakörben dolgozik és páros hónapban lépett be. Írja be kereső pár oszlopába a megtalált partner nevét, illetve a partner pár oszlopába a kereső nevét. Egy partner csak egyszer fordulhat elő. #03_PL-SQL Feladatgyűjtemény [06] - 2 -

3 MEGOLDÁSGYŰJTEMÉNY 9.1. Feladat Írjon egy olyan PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát, és minden dolgozó fizetését megemeli a saját fizetésének véletlenszám (0-100) értékű százalékával. Megoldás 1. A tábla létrehozása SET numwidth 5 DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; SELECT * ; SET serveroutput ON DECLARE szorzo NUMBER; CURSOR dolgozo IS SELECT empno,sal ; BEGIN FOR i IN dolgozo LOOP szorzo := ROUND(DBMS_RANDOM.VALUE(0,100)/100,2); DBMS_OUTPUT.PUT_LINE('A szorzó értéke: ' szorzo ' 'emelés értéke:' (i.sal * szorzo)); SET sal = sal + (sal * szorzo) WHERE empno = i.empno; END LOOP; END; / ' SELECT * ; SET numwidth 10 Eredmény A tábla eldobva. A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK DEC ALLEN SALESMAN FEB WARD SALESMAN FEB JONES MANAGER ÁPR MARTIN SALESMAN SZE BLAKE MANAGER MÁJ CLARK MANAGER JÚN SCOTT ANALYST ÁPR KING PRESIDENT 81-NOV TURNER SALESMAN SZE ADAMS CLERK MÁJ JAMES CLERK DEC #03_PL-SQL Feladatgyűjtemény [06] - 3 -

4 7902 FORD ANALYST DEC MILLER CLERK JAN sor kijelölve. A szorzó értéke:,71 A szorzó értéke:,28 A szorzó értéke:,71 A szorzó értéke:,34 A szorzó értéke:,12 A szorzó értéke:,99 A szorzó értéke:,66 A szorzó értéke:,65 A szorzó értéke:,54 A szorzó értéke:,95 A szorzó értéke:,7 A szorzó értéke:,48 A szorzó értéke:,76 A szorzó értéke:,37 emelés értéke:568 emelés értéke:448 emelés értéke:887,5 emelés értéke:1011,5 emelés értéke:150 emelés értéke:2821,5 emelés értéke:1617 emelés értéke:1950 emelés értéke:2700 emelés értéke:1425 emelés értéke:1783,6 emelés értéke:456 emelés értéke:2280 emelés értéke:481 A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve Feladat Írjon PL/SQL programot, amely az emp táblából létrehoz egy dolgozó táblát, és megnöveli a felhasználó által megadott azonosítójú főnök minden beosztottjának fizetését azok átlagfizetésének 10%-val. Megoldás SET numwidth 5 SET serveroutput ON ACCEPT azonositó PROMPT 'Kérem a főnök azonosítóját: ' DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; SELECT * ; CREATE OR REPLACE VIEW megadott(dempno,dname,djob,dmgr,dhiredate, dsal,dcomm,ddeptno, átlag) SELECT dolgozó.*, átlag, (SELECT ROUND(AVG(sal)) átlag, mgr azon GROUP BY mgr HAVING mgr = &azonositó) al #03_PL-SQL Feladatgyűjtemény [06] - 4 -

5 WHERE al.azon = dolgozó.mgr; SELECT * FROM megadott; BEGIN SET sal = sal * (SELECT DISTINCT átlag FROM megadott) WHERE mgr = (SELECT DISTINCT dmgr FROM megadott); END; / SELECT * ; SET numwidth 10 Eredmény Kérem a főnök azonosítóját: 7698 A tábla eldobva. A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve. régi 9: HAVING mgr = &azonositó) al új 9: HAVING mgr = 7698) al A nézet létrejött. DEMPNO DNAME DJOB DMGR DHIREDATE DSAL DCOMM DDEPTNO ÁTLAG ALLEN SALESMAN WARD SALESMAN MARTIN SALESMAN TURNER SALESMAN JAMES CLERK sor kijelölve. 5 sor módosítva. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER #03_PL-SQL Feladatgyűjtemény [06] - 5 -

6 7782 CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve Feladat Írjon PL/SQL programot, mely az emp táblából létrehoz egy dolgozó táblát, és megnöveli a felhasználó által megadott nevű főnök minden beosztottjának fizetését azok átlagfizetésének 10%-val. Megoldás1 SET numwidth 5; BREAK ON mgr DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; SELECT * ; Eredmény A tábla eldobva. A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve. 1. Lépés. Hozzunk létre egy nézetet a beosztottak átlagának kiszámítására. CREATE OR REPLACE VIEW beoátlag SELECT mgr, ROUND(AVG(sal)) átlag WHERE mgr IS NOT NULL GROUP BY mgr; SELECT * FROM beoátlag; Eredmény A nézet létrejött. #03_PL-SQL Feladatgyűjtemény [06] - 6 -

7 MGR ÁTLAG sor kijelölve. 2. Lépés. Nézet létrehozása a dolgozó, főnök adataival és az átlaggal együtt. CREATE OR REPLACE VIEW BEOSZT SELECT d.empno dazon, d.ename dnév, f.empno fazon, f.ename fnév, átlag d, dolgozó f, Beoátlag beo WHERE d.mgr = f.empno(+) AND f.empno = beo.mgr; SELECT * FROM beoszt; Eredmény A nézet létrejött. DAZON DNÉV FAZON FNÉV ÁTLAG SCOTT 7566 JONES FORD 7566 JONES ALLEN 7698 BLAKE WARD 7698 BLAKE MARTIN 7698 BLAKE TURNER 7698 BLAKE JAMES 7698 BLAKE MILLER 7782 CLARK ADAMS 7788 SCOTT JONES 7839 KING BLAKE 7839 KING CLARK 7839 KING SMITH 7902 FORD sor kijelölve. 2. Lépés. Írjuk meg a növelést mindazoknak, akik a felhasználó által megadott főnök beosztottai, és listázzuk főnökazonosító szerint rendezve. ACCEPT név PROMPT 'Kérem a főnök nevét: ' BEGIN SET sal = sal * (SELECT DISTINCT átlag FROM beoszt WHERE UPPER(fnév) = UPPER('&név')) WHERE dolgozó.mgr IN (SELECT fazon FROM beoszt WHERE UPPER(fnév) = UPPER('&név')); END; / SELECT * ORDER BY mgr; SET numwidth 10 CLEAR BREAKS #03_PL-SQL Feladatgyűjtemény [06] - 7 -

8 Eredmény Kérem a főnök nevét: blake régi 6: WHERE UPPER(fnév) = UPPER('&név')) új 6: WHERE UPPER(fnév) = UPPER('blake')) régi 9: WHERE UPPER(fnév) = UPPER('&név')); új 9: WHERE UPPER(fnév) = UPPER('blake')); A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SCOTT ANALYST FORD ANALYST ALLEN SALESMAN WARD SALESMAN JAMES CLERK TURNER SALESMAN MARTIN SALESMAN MILLER CLERK ADAMS CLERK JONES MANAGER CLARK MANAGER BLAKE MANAGER SMITH CLERK KING PRESIDENT sor kijelölve. Megoldás2 SET numwidth 5 ACCEPT név PROMPT 'Kérem a főnök nevét: ' DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; SELECT * ; CREATE OR REPLACE VIEW megadott(dempno,dname,djob,dmgr,dhiredate,dsal,dcomm,ddeptno,átlag) SELECT dolgozó.*, átlag, (SELECT ROUND(AVG(sal)) átlag, mgr azon GROUP BY mgr) al WHERE al.azon = dolgozó.mgr; SELECT * FROM megadott; CREATE OR REPLACE VIEW fönöknév(azon,fnév) SELECT DISTINCT főnök.empno, főnök.ename FROM emp dolg, emp főnök WHERE dolg.mgr = főnök.empno(+); SELECT * FROM fönöknév; CREATE OR REPLACE VIEW jo(fnév,azonos,dnév,átlag) SELECT fnév, dempno, dname, #03_PL-SQL Feladatgyűjtemény [06] - 8 -

9 átlag FROM fönöknév, megadott WHERE UPPER(fnév) = UPPER('&név') AND azon = dmgr; SELECT * FROM jo; CREATE OR REPLACE VIEW növ(emeles) SELECT DISTINCT 0.1*átlag FROM jo; SELECT * FROM növ; BEGIN SET sal = sal + (SELECT emeles FROM növ) WHERE empno = (SELECT azonos FROM jo WHERE dolgozó.ename = dnév); END; / SELECT * ; Eredmény Kérem a főnök nevét: blake A tábla eldobva. A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve. A nézet létrejött. DEMPNO DNAME DJOB DMGR DHIREDATE DSAL DCOMM DDEPTNO ÁTLAG FORD ANALYST SCOTT ANALYST JAMES CLERK TURNER SALESMAN MARTIN SALESMAN WARD SALESMAN ALLEN SALESMAN MILLER CLERK ADAMS CLERK CLARK MANAGER BLAKE MANAGER JONES MANAGER SMITH CLERK sor kijelölve. #03_PL-SQL Feladatgyűjtemény [06] - 9 -

10 A nézet létrejött. régi 6: WHERE UPPER(fnév) =UPPER('&név') AND új 6: WHERE UPPER(fnév) =UPPER('blake') AND A nézet létrejött. FNÉV AZONOS DNÉV ÁTLAG BLAKE 7499 ALLEN 1310 BLAKE 7521 WARD 1310 BLAKE 7654 MARTIN 1310 BLAKE 7844 TURNER 1310 BLAKE 7900 JAMES sor kijelölve. A nézet létrejött. A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SMITH CLERK ALLEN SALESMAN WARD SALESMAN JONES MANAGER MARTIN SALESMAN BLAKE MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT TURNER SALESMAN ADAMS CLERK JAMES CLERK FORD ANALYST MILLER CLERK sor kijelölve. #03_PL-SQL Feladatgyűjtemény [06]

11 10. Foglalkozás Összefoglaló Feladatok Részletesebben lásd [2]: 9., és 10. fejezet FELADATGYŰJTEMÉNY Feladat Hozzon létre egy dolgozó nevű táblát az emp tábla eladóiból (salesman), és változtassa meg az mgr oszlop nevét partner névre, melyet az alábbi módon töltsön fel értékkel: Két dolgozó partnere lehet egymásnak, ha még egyiküknek sincs partnere, és 150 USD-nél nem több a fizetésük különbsége. A partnerek azonosítói szerepeljenek egymás partner oszlopában. Ellenőrizze a megoldást új dolgozó felvitelével, és a partnerkeresés megismétlésével Feladat Hozzon létre egy dolgozó nevű táblát az emp tábla rekordjaiból, és bővítse egy partner nevű oszloppal, melynek típusa egyezzen meg az ename oszlop típusával. Készítsen egy SQL*Plus programba ágyazott PL/SQL blokkot, amely megkisérli a dolgozókat párosítani az alábbi szempontok alapján: - minden dolgozó táblabeli dolgozó partnere csak dolgozó táblabeli dolgozó lehet, - önmagának senki nem lehet partnere, - mindenki legfeljebb egy valakinek lehet partnere, - két dolgozó partnere lehet egymásnak, ha ugyanaz a főnökük és megegyezik a munkakörük Feladat 3.1. Hozzon létre egy dolgozó nevű táblát az emp tábla rekordjaiból Készítsen triggert a dolgozó táblába történő ellenőrzött adatbevitelhez, ahol az alábbi adatbeviteli feltételeket a trigger által meghívott tárolt alprogramokban vizsgálja meg: a.) Részleg feltétel: Egy új dolgozó részlegeként csak már létező részleg azonosítója adható meg. b.) Fizetési feltétel: Egy új dolgozó fizetésként a részlegében és vele azonos munkakörben dolgozók átlagfizetésének legalább a 3/4-ét kapja, ha a részlegében nincs vele azonos munkakörű, akkor a részlegében dolgozók átlagfizetésének 2/3-ánál legalább 300 USD-vel többet, ha pedig a részlegében ő az első dolgozó, akkor legalább 2000 USD-t A trigger és a tárolt eljárások ellenőrzése érdekében végezze el a szükséges adatfelviteleket Az elkészített megoldás a tárolandó dolgozó nevét írja vissza a képernyőre, és sikeres adatfelvitel esetén írja ki a dolgozó nevét, majd az "OK!" üzenetet, míg sikertelen adatfelvitel esetén a "HIBA:" üzenetet, és a sikertelenség okát Utolsó lépésként listázza a dolgozó táblát, majd állítsa vissza az eredeti táblatartalmat. #03_PL-SQL Feladatgyűjtemény [06]

12 MEGOLDÁSGYŰJTEMÉNY Feladat Hozzon létre egy dolgozó nevű táblát az emp tábla eladóiból (salesman), és változtassa meg az mgr oszlop nevét partner névre, melyet az alábbi módon töltsön fel értékkel: Két dolgozó partnere lehet egymásnak, ha még egyiküknek sincs partnere, és 150 USD-nél nem több a fizetésük különbsége. A partnerek azonosítói szerepeljenek egymás partner oszlopában. Ellenőrizze a megoldást új dolgozó felvitelével, és a partnerkeresés megismétlésével. A. Megoldás (Megoldási próbálkozás SQL-ben) 0. lépés (Az SQL*Plus környezet inicializálása) -- Az emp tábla inicializálása (ezúttal elhagyjuk) -- Feltételezve, hogy az INIT1.sql a BIN könyvtárban van -- A dátum és megjelenítés inicializálása ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'; SET numwidth 5 -- Az esetlegesen létező azonos nevű objektumok törlése DROP VIEW dolgozó; DROP TABLE dolgozó; A munkamenet módosítva. ORA-00942: a tábla vagy a nézet nem létezik ORA-00942: a tábla vagy a nézet nem létezik 1. lépés (Konzisztens adattábla létrehozása) CREATE OR REPLACE VIEW DolgozóNézet SELECT * FROM emp WHERE LOWER(job) = 'salesman'; SELECT * FROM DolgozóNézet; DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT empno, ename, job, CE WHEN mgr IN (SELECT empno FROM DolgozóNézet) THEN mgr ELSE NULL END mgr, hiredate, sal, comm, deptno FROM DolgozóNézet; DROP VIEW DolgozóNézet; SELECT * ; A nézet létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO #03_PL-SQL Feladatgyűjtemény [06]

13 MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN lépés (Oszlopmódosítás és adattörlés) ALTER TABLE dolgozó RENAME COLUMN mgr TO partner; -- A partner mező ezúttal az alábbi törlés nélkül is üres SET partner = NULL; SELECT * ; A tábla módosítva. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN lépés (Adatfeltöltés) -- Partnerkereső segédnézet létrehozása CREATE OR REPLACE VIEW PartnerKeresés(DolgozóID,DolgozóFiz, PartnerID,PartnerFiz) SELECT D.empno DolgozóID, D.sal DolgozóFiz, P.empno PartnerID, P.sal PartnerFiz D, dolgozó P WHERE ABS(D.sal - P.sal) <= 150 AND D.empno!= P.empno; SELECT * FROM PartnerKeresés; A nézet létrejött. DOLGOZÓID DOLGOZÓFIZ PARTNERID PARTNERFIZ Adatmódosítás SET partner = (SELECT PartnerID FROM PartnerKeresés WHERE DolgozóID = empno); SELECT * ; 4 sor módosítva. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN lépés (Ellenőrzés rekordfelvitellel) INSERT INTO dolgozó VALUES(6666,'SIGORSZKI','SALESMAN',NULL,' ',1250,NULL,30); 1 sor létrejött. #03_PL-SQL Feladatgyűjtemény [06]

14 SET partner = (SELECT PartnerID FROM PartnerKeresés WHERE DolgozóID = empno); SET partner = (SELECT PartnerID * Hiba a(z) 2. sorban: ORA-01427: egysoros allekérdezés egynél több sorral tér vissza >> HIBÁS az adatmódosítás! >> Derítsük ki a hiba okát, és készítsünk jó adatmódosító utasítást SELECT * FROM PartnerKeresés; DOLGOZÓID DOLGOZÓFIZ PARTNERID PARTNERFIZ sor kijelölve. >> A HIBA oka, hogy egy dolgozónak több partnere is lehet a fizetés feltétel szerint SELECT MaxPartnerID FROM (SELECT DolgozóID, MAX(PartnerID) MaxPartnerID FROM PartnerKeresés GROUP BY DolgozóID) WHERE DolgozóID = 7654; MAXPARTNERID >> Így minden dolgozó a legnagyobb azonosítójú (a fizetésre vonatkozó feltételt teljesítő) >> dolgozót kapja partnerként. >> (Ez egy módszer arra, hogy kijelöljünk egyet a lehetséges elemek közül, >> de ilyen módszer nem mindig található!) -- ÚJABB PRÓBÁLKOZÁS -- A partner mező inicializálása SET partner = NULL; -- A partner mező beállítása (feltöltése) SET partner = (SELECT MaxPartnerID FROM (SELECT DolgozóID, MAX(PartnerID) MaxPartnerID FROM PartnerKeresés GROUP BY DolgozóID) WHERE DolgozóID = empno); SELECT * ; 5 sor módosítva. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN SIGORSZKI SALESMAN #03_PL-SQL Feladatgyűjtemény [06]

15 >> Még mindig HIBÁS az adatmódosítás! >> A HIBA oka, hogy a legnagyobb azonosítójú dolgozót többen is tudják választani. >> Ezt úgy küszöböljük ki, hogy mielőtt egy dolgozó-azonosítót partnerkódként kiosztunk, >> megvizsgáljuk, hogy azt nem kapta-e már meg valaki. >> (Ezt algebrailag felírva: {a} B {a} \ B, ahol {a} a vizsgálandó dolgozó-azonosító, >> vagyis a "(SELECT MaxPartnerID..." utasításrész, amelyik bár csak egyetlen elemet ad ki, >> azért mégis csak halmaz, hiszen lista.) -- ÚJABB PRÓBÁLKOZÁS A partner mező inicializálása SET partner = NULL; -- A partner mező beállítása (feltöltése) SET partner = (SELECT MaxPartnerID FROM (SELECT DolgozóID, MAX(PartnerID) MaxPartnerID FROM PartnerKeresés GROUP BY DolgozóID) WHERE DolgozóID = empno) WHERE NOT EXISTS (SELECT MaxPartnerID FROM (SELECT DolgozóID, MAX(PartnerID) MaxPartnerID FROM PartnerKeresés GROUP BY DolgozóID) WHERE DolgozóID = empno MINUS SELECT partner ); SELECT * ; 0 sor módosítva. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN SIGORSZKI SALESMAN >> Még mindig HIBÁS az adatmódosítás! >> Mi lehet a HIBA oka, hiszen ez az adatmódosítás már igazán mindent figyelembe vesz? >>???? (Ötletek küldhetők az oktat123@fre címre.) #03_PL-SQL Feladatgyűjtemény [06]

16 B. Megoldás (Megoldás PL/SQL-ben Rejtett kurzorral és ROWID-val) 1. lépés (Konzisztens adattábla létrehozása) ugyanaz, mint az A. Megoldásban a 0. és az 1. lépés (lásd ott a szükséges SQL-utasításokat, illetve a DataLoad_A.sql szkript programot) 2. lépés (Oszlopmódosítás, rekordhozzáadás) ugyanaz, mint az A. Megoldásban a 2. és a 3. lépés (lásd ott a szükséges SQL-utasításokat, illetve a DataLoad_A.sql szkript programot) 3. lépés (Adatfeltöltés - ROWID használattal) -- DataLoad_B.sql Adatfeltöltés rejtett kurzorral és ROWID használattal (Értelmezését lásd a 12_KurzorHasználat.doc szkriptben) Utolsó javítás dátuma: SET serveroutput ON DECLARE v_egyik dolgozó.partner%type; v_másik dolgozó.partner%type; BEGIN -- A dolgozó tábla inicializálása SET partner = NULL; -- A fejléc kiíratása DBMS_OUTPUT.PUT_LINE('DOLGOZÓ ' 'Fizetése ' 'PARTNER ' 'Fizetése'); DBMS_OUTPUT.PUT_LINE('==================================='); -- A külső ciklus (végigmegy az összes dolgozó rekordján) FOR EgyikDolgozó IN (SELECT dolgozó.*, ROWID RecID ) LOOP -- A partner azonosító lekérdezése a külső ciklus számára: SELECT partner INTO v_egyik WHERE ROWID = EgyikDolgozó.RecID; -- A belső ciklus (ez is végigmegy az összes dolgozó rekordján) FOR MásikDolgozó IN (SELECT dolgozó.*, ROWID RecID ) LOOP -- A partner azonosító lekérdezése a belső ciklus számára: SELECT partner INTO v_másik WHERE ROWID = MásikDolgozó.RecID; -- Ha a külső ciklus aktuális dolgozójának fizetése -- és a belső ciklus aktuális dolgozójának fizetése -- között a különbség nem több 150 USD-nél, -- és a két dolgozó nem azonos, -- és egyiknek sincs még partnere, #03_PL-SQL Feladatgyűjtemény [06]

17 IF ABS(EgyikDolgozó.sal - MásikDolgozó.sal) <= 150 AND EgyikDolgozó.empno!= MásikDolgozó.empno AND v_egyik IS NULL AND v_másik IS NULL THEN -- akkor állítsuk be a partner-azonosítót: SET partner = MásikDolgozó.empno WHERE ROWID = EgyikDolgozó.RecID; -- és a beállítást visszafelé is végezzük el: SET partner = EgyikDolgozó.empno WHERE ROWID = MásikDolgozó.RecID; -- Kiíratás DBMS_OUTPUT.PUT_LINE(EgyikDolgozó.empno ' ' EgyikDolgozó.sal ' ' MásikDolgozó.empno ' ' MásikDolgozó.sal); -- Kiugrás a ciklusból -- Az egyezés és módosítás után kiugrás a belső ciklusból, és -- ugrás a külső ciklus következő rekordjára EXIT; END IF; -- A belső (MásikDolgozó) ciklus bezárása END LOOP; -- A külső (EgyikDolgozó) ciklus bezárása END LOOP; END; / SELECT * ; -- End Of DataLoad_B.sql DOLGOZÓ Fizetése PARTNER Fizetése =================================== A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN SIGORSZKI SALESMAN #03_PL-SQL Feladatgyűjtemény [06]

18 C. Megoldás (Megoldás PL/SQL-ben Rejtett kurzorral, ROWID nélkül) 1. lépés (Konzisztens adattábla létrehozása) ugyanaz, mint az A. Megoldásban a 0. és az 1. lépés (lásd ott a szükséges SQL-utasításokat, illetve a DataLoad_A.sql szkript programot) 2. lépés (Oszlopmódosítás, rekordhozzáadás) ugyanaz, mint az A. Megoldásban a 2. és 3. lépés (lásd ott a szükséges SQL-utasításokat, illetve a DataLoad_A.sql szkript programot) 3. lépés (Adatfeltöltés - ROWID használat nélkül) A feladat megoldható ezúttal ROWID használata nélkül is, mivel van olyan, a rekordokat egyértelműen azonosító oszlop (empno), mely a kurzor-ciklusban nem változik meg. -- DataLoad_C.sql Adatfeltöltés rejtett kurzorral, ROWID nélkül (Értelmezését lásd a 12_KurzorHasználat.doc szkriptben) Utolsó javítás dátuma: SET serveroutput ON DECLARE v_egyik dolgozó.partner%type; v_másik dolgozó.partner%type; BEGIN -- A dolgozó tábla inicializálása SET partner = NULL; -- A fejléc kiíratása DBMS_OUTPUT.PUT_LINE('DOLGOZÓ ' 'Fizetése ' 'PARTNER ' 'Fizetése'); DBMS_OUTPUT.PUT_LINE('==================================='); -- A külső ciklus (végigmegy az összes dolgozó rekordján) FOR EgyikDolgozó IN (SELECT * ) LOOP -- A partner azonosító lekérdezése a külső ciklus számára: SELECT partner INTO v_egyik WHERE empno = EgyikDolgozó.empno; -- A belső ciklus (ez is végigmegy az összes dolgozó rekordján) FOR MásikDolgozó IN (SELECT * ) LOOP -- A partner azonosító lekérdezése a belső ciklus számára: SELECT partner INTO v_másik WHERE empno = MásikDolgozó.empno; -- Ha a külső ciklus aktuális dolgozójának fizetése -- és a belső ciklus aktuális dolgozójának fizetése -- között a különbség nem több 150 USD-nél, -- és a két dolgozó nem azonos, -- és egyiknek sincs még partnere, #03_PL-SQL Feladatgyűjtemény [06]

19 IF ABS(EgyikDolgozó.sal - MásikDolgozó.sal) <= 150 AND EgyikDolgozó.empno!= MásikDolgozó.empno AND v_egyik IS NULL AND v_másik IS NULL THEN -- akkor állítsuk be a partner-azonosítót: SET partner = MásikDolgozó.empno WHERE empno = EgyikDolgozó.empno; -- és a beállítást visszafelé is végezzük el: SET partner = EgyikDolgozó.empno WHERE empno = MásikDolgozó.empno; -- Kiíratás DBMS_OUTPUT.PUT_LINE(EgyikDolgozó.empno ' ' EgyikDolgozó.sal ' ' MásikDolgozó.empno ' ' MásikDolgozó.sal); -- Kiugrás a ciklusból -- Az egyezés és módosítás után kiugrás a belső ciklusból, és -- ugrás a külső ciklus következő rekordjára EXIT; END IF; -- A belső (MásikDolgozó) ciklus bezárása END LOOP; -- A külső (EgyikDolgozó) ciklus bezárása END LOOP; END; / SELECT * ; -- End Of DataLoad_C.sql DOLGOZÓ Fizetése PARTNER Fizetése =================================== A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN SIGORSZKI SALESMAN #03_PL-SQL Feladatgyűjtemény [06]

20 D. Hibás Megoldás Tekintsük az előző, C. Megoldást, ám ezúttal ne a dolgozó táblából, hanem az egyes ciklusok rejtett kurzoraiból kérdezzük le egyszerű értékadással (az adott ciklus ciklusváltozóján keresztül) az aktuális rekord partner értékét (lásd a DataLoad_D.sql szkript programot). Eredményként az alábbi táblát kapjuk: EMPNO ENAME JOB PARTNER HIREDATE SAL COMM DEPTNO MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN SIGORSZKI SALESMAN Ez láthatóan hibás (Martinnak és Sigorszkinak ugyanaz a partner jutott). Mi a hiba oka? A magyarázat a kurzorok alaptermészetében keresendő: A kurzorbeli lekérdezés eredménye egy zárt memóriaterületre kerül, melyet nem befolyásol azon adattábla tartalmának megváltozása, melyre a kurzorlekérdezés történt. #03_PL-SQL Feladatgyűjtemény [06]

21 2. Feladat Hozzon létre egy dolgozó nevű táblát az emp tábla rekordjaiból, és bővítse egy partner nevű oszloppal, melynek típusa egyezzen meg az ename oszlop típusával. Készítsen egy SQL*Plus programba ágyazott PL/SQL blokkot, amely megkisérli a dolgozókat párosítani az alábbi szempontok alapján: - minden dolgozó táblabeli dolgozó partnere csak dolgozó táblabeli dolgozó lehet, - önmagának senki nem lehet partnere, - mindenki legfeljebb egy valakinek lehet partnere, - két dolgozó partnere lehet egymásnak, ha ugyanaz a főnökük és megegyezik a munkakörük. Megoldás SET serveroutput ON SET numwidth 5 DROP VIEW dolgozó; DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; ALTER TABLE dolgozó DROP COLUMN partner; ALTER TABLE dolgozó ADD partner VARCHAR2(6) DEFAULT '---'; DECLARE i_partner dolgozó.partner%type; j_partner dolgozó.partner%type; BEGIN FOR i IN (SELECT * ) LOOP SELECT partner INTO i_partner WHERE empno = i.empno; FOR j IN (SELECT * ) LOOP SELECT partner INTO j_partner WHERE empno = j.empno; IF (i.mgr = j.mgr) AND (i.job = j.job) AND (i.empno <> j.empno) AND (i_partner = '---') AND (j_partner = '---') THEN DBMS_OUTPUT.PUT_LINE(i.ename i_partner ' ' j.ename j_partner); SET partner = j.ename WHERE empno = i.empno; SET partner = i.ename WHERE empno = j.empno; EXIT; END IF; END LOOP; #03_PL-SQL Feladatgyűjtemény [06]

22 END LOOP; END; / SELECT * ; SET numwidth 10 Eredmény A tábla eldobva. A tábla létrejött. A tábla módosítva. A tábla módosítva. ALLEN--- WARD--- JONES--- BLAKE--- MARTIN--- TURNER--- SCOTT--- FORD--- A PL/SQL eljárás sikeresen befejeződött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO PARTNE SMITH CLERK ALLEN SALESMAN WARD 7521 WARD SALESMAN ALLEN 7566 JONES MANAGER BLAKE 7654 MARTIN SALESMAN TURNER 7698 BLAKE MANAGER JONES 7782 CLARK MANAGER SCOTT ANALYST FORD 7839 KING PRESIDENT TURNER SALESMAN MARTIN 7876 ADAMS CLERK JAMES CLERK FORD ANALYST SCOTT 7934 MILLER CLERK sor kijelölve. #03_PL-SQL Feladatgyűjtemény [06]

23 10.3. Feladat 3.1. Hozzon létre egy dolgozó nevű táblát az emp tábla rekordjaiból Készítsen triggert a dolgozó táblába történő ellenőrzött adatbevitelhez, ahol az alábbi adatbeviteli feltételeket a trigger által meghívott tárolt alprogramokban vizsgálja meg: a.) Részleg feltétel: Egy új dolgozó részlegeként csak már létező részleg azonosítója adható meg. b.) Fizetési feltétel: Egy új dolgozó fizetésként a részlegében és vele azonos munkakörben dolgozók átlagfizetésének legalább a 3/4-ét kapja, ha a részlegében nincs vele azonos munkakörű, akkor a részlegében dolgozók átlagfizetésének 2/3-ánál legalább 300 USD-vel többet, ha pedig a részlegében ő az első dolgozó, akkor legalább 2000 USD-t A trigger és a tárolt eljárások ellenőrzése érdekében végezze el a szükséges adatfelviteleket Az elkészített megoldás a tárolandó dolgozó nevét írja vissza a képernyőre, és sikeres adatfelvitel esetén írja ki a dolgozó nevét, majd az "OK!" üzenetet, míg sikertelen adatfelvitel esetén a "HIBA:" üzenetet, és a sikertelenség okát Utolsó lépésként listázza a dolgozó táblát, majd állítsa vissza az eredeti táblatartalmat. Megoldás 0. lépés (Az SQL*Plus környezet inicializálása) -- Az emp tábla inicializálása (ezúttal elhagyjuk) -- Feltételezve, hogy az INIT1.sql a BIN könyvtárban van -- A dátum és megjelenítés inicializálása ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'; SET numwidth 5 -- Az esetlegesen létező azonos nevű objektumok törlése DROP VIEW dolgozó; DROP TABLE dolgozó; -- A PL/SQL kiíratások engedélyezése SET serveroutput ON; A munkamenet módosítva. ORA-00942: a tábla vagy a nézet nem létezik ORA-00942: a tábla vagy a nézet nem létezik 1. lépés feladata 3.1. Hozzon létre egy dolgozó nevű táblát az emp tábla rekordjaiból. 1. lépés feladatának megoldása DROP TABLE dolgozó; CREATE TABLE dolgozó SELECT * FROM emp; SELECT * ; ORA-00942: a tábla vagy a nézet nem létezik A tábla létrejött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN ALLEN SALESMAN #03_PL-SQL Feladatgyűjtemény [06]

24 7844 TURNER SALESMAN JAMES CLERK WARD SALESMAN FORD ANALYST SMITH CLERK SCOTT ANALYST ADAMS CLERK MILLER CLERK sor kijelölve. 2. lépés feladata 3.2. Készítsen triggert a dolgozó táblába történő ellenőrzött adatbevitelhez, ahol az alábbi adatbeviteli feltételeket a trigger által meghívott tárolt alprogramokban vizsgálja meg: a.) Részleg feltétel: Egy új dolgozó részlegeként csak már létező részleg azonosítója adható meg. b.) Fizetési feltétel: Egy új dolgozó fizetésként a részlegében és vele azonos munkakörben dolgozók átlagfizetésének legalább a 3/4-ét kapja, ha a részlegében nincs vele azonos munkakörű, akkor a részlegében dolgozók átlagfizetésének 2/3-ánál legalább 300 USD-vel többet, ha pedig a részlegében ő az első dolgozó, akkor legalább 2000 USD-t Az elkészített megoldás a tárolandó dolgozó nevét írja vissza a képernyőre, és sikeres adatfelvitel esetén írja ki a dolgozó nevét, majd az "OK!" üzenetet, míg sikertelen adatfelvitel esetén a "HIBA:" üzenetet, és a sikertelenség okát. 2. lépés feladatának megoldása Megjegyzés: m1. A részlegfeltétel ellenőrzése érdekében létre kell hoznunk a részleg táblát is. m2. A 3.4. pontbeli követelményt célszerű a triggerben, illetve a trigger által meghívott tárolt eljárásokban megvalósítani lépés (A részleg tábla létrehozása) -- Az esetlegesen létező azonos nevű objektumok törlése DROP VIEW részleg; DROP TABLE részleg; -- A részleg tábla létrehozása CREATE TABLE részleg SELECT * FROM dept; SELECT * FROM részleg; ORA-00942: a tábla vagy a nézet nem létezik ORA-00942: a tábla vagy a nézet nem létezik A tábla létrejött. DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALL 30 SALES CHICAGO 40 OPERATIONS BOSTON 2.2. lépés (A részlegfeltételt ellenőrző tárolt alprogram létrehozása) -- A részleglétezést ellenőrző tárolt alprogram -- Ennek két kimenete van attól függően, hogy létezik-e a megadott részleg, -- vagy nem (ez a hiba ág). CREATE OR REPLACE PROCEDURE Részlegfeltétel(RészlegID IN NUMBER) Előfordulás INTEGER; #03_PL-SQL Feladatgyűjtemény [06]

25 BEGIN SELECT COUNT(*) INTO Előfordulás FROM részleg WHERE deptno = RészlegID; IF Előfordulás = 0 -- F-a. FELTÉTEL! THEN RAISE_APPLICATION_ERROR(-20110, '>>HIBA: A Részlegfeltétel nem teljesül!'); ELSE DBMS_OUTPUT.PUT_LINE('OK! ' '(A Részlegfeltétel teljesül.)'); END IF; END; / SHOW ERROR Az eljárás létrejött. Nincsenek hibák lépés (A fizetési feltételt ellenőrző tárolt alprogram létrehozása) -- A fizetési feltételt ellenőrző tárolt alprogramban két vizsgálatot kell elvégezni. -- Először azt, hogy van-e már a megadott részlegben dolgozó, vagy nincs, -- Ha van dolgozó, akkor pedig azt, hogy van-e azonos munkakörű, vagy nincs. CREATE OR REPLACE PROCEDURE Fizetésfeltétel(RészlegID IN NUMBER, Munkakör IN VARCHAR2, Fizetés IN NUMBER) IS RészlegbeliDolgozók INTEGER; MunkakörbeliDolgozók INTEGER; RészlegÁtlag dolgozó.sal%type; MunkakörÁtlag dolgozó.sal%type; FizetésHatár dolgozó.sal%type; BEGIN -- Az új dolgozó részlegében már dolgozók számának meghatározása SELECT COUNT(*) INTO RészlegbeliDolgozók WHERE deptno = RészlegID; -- A fizetés vizsgálata a részlegbeli dolgozók számától függően IF RészlegbeliDolgozók = 0 THEN -- Ekkor az új dolgozó az első dolgozó a részlegében IF Fizetés >= F-b3. FELTÉTEL! THEN DBMS_OUTPUT.PUT_LINE('OK! ' '(Az új fizetés legalább 2000 USD.)'); ELSE RAISE_APPLICATION_ERROR(-20113, '>>HIBA: Az új fizetés kisebb 2000 USD-nél!'); END IF; ELSE -- Ekkor már vannak mások is az új dolgozó részlegében -- Kérdés: Vannak-e azonos munkakörbeliek is? SELECT COUNT(*) INTO MunkakörbeliDolgozók WHERE deptno = RészlegID AND UPPER(job) = UPPER(Munkakör); -- A fizetés vizsgálata a részlegbeli dolgozók munkakörétől függően #03_PL-SQL Feladatgyűjtemény [06]

26 több.)'); IF MunkakörbeliDolgozók = 0 THEN -- Nincs azonos munkakörű a részlegben SELECT AVG(sal) INTO RészlegÁtlag GROUP BY deptno HAVING deptno = RészlegID; FizetésHatár := ROUND(2/3 * RészlegÁtlag) + 300; DBMS_OUTPUT.PUT_LINE('> 2/3 * RészlegÁtlag = ' FizetésHatár); IF Fizetés >= FizetésHatár -- F-b2. FELTÉTEL! THEN DBMS_OUTPUT.PUT_LINE('OK! ' '(Az új fizetés a részlegátlag 2/3-ánál min. 300 USD-vel ELSE RAISE_APPLICATION_ERROR(-20112, '>>HIBA: Az új fizetés kisebb, ' 'mint a részlegátlag 300 USD-vel megnövelt értéke!'); END IF; ELSE -- Van azonos munkakörű a részlegben SELECT AVG(sal) INTO MunkakörÁtlag GROUP BY deptno, job HAVING deptno = RészlegID AND UPPER(job) = UPPER(Munkakör); FizetésHatár := ROUND(3/4 * MunkakörÁtlag); DBMS_OUTPUT.PUT_LINE('> 3/4 * MunkakörÁtlag = ' FizetésHatár); IF Fizetés >= FizetésHatár -- F-b1. FELTÉTEL! THEN DBMS_OUTPUT.PUT_LINE('OK! ' '(Az új fizetés a részlegbeli munkaköri átlag 3/4-nél több.)'); ELSE RAISE_APPLICATION_ERROR(-20111, '>>HIBA: Az új fizetés kisebb, ' 'mint a részlegbeli munkaköri átlag 3/4-e!'); END IF; END IF; END IF; END; / SHOW ERROR Az eljárás létrejött. Nincsenek hibák. Megjegyzés A fenti tárolt eljárásban a SELECT AVG(sal) INTO RészlegÁtlag GROUP BY deptno HAVING deptno = RészlegID; helyett írhattuk volna SELECT AVG(sal) INTO RészlegÁtlag #03_PL-SQL Feladatgyűjtemény [06]

27 WHERE deptno = RészlegID; valamint a SELECT AVG(sal) INTO MunkakörÁtlag GROUP BY deptno, job HAVING deptno = RészlegID AND UPPER(job) = UPPER(Munkakör); helyett írhattuk volna SELECT AVG(sal) INTO MunkakörÁtlag WHERE deptno = RészlegID AND UPPER(job) = UPPER(Munkakör); 2.4. lépés (Az adatbevitel-felügyelő trigger létrehozása) -- A sortrigger a feltételvizsgáló tárolt alprogramokat hívja meg. DROP TRIGGER AdatFelügyelő; CREATE OR REPLACE TRIGGER AdatFelügyelő BEFORE INSERT ON dolgozó FOR EACH ROW BEGIN DBMS_OUTPUT.PUT_LINE ('> A felviendő dolgozó: ' :new.ename); Részlegfeltétel(:new.deptno); Fizetésfeltétel(:new.deptno, :new.job, :new.sal); DBMS_OUTPUT.PUT_LINE (:new.ename ': OK!'); END; / SHOW ERROR ORA-04080: 'ADATFELÜGYELŐ' trigger nem létezik A trigger létrejött. Nincsenek hibák. 3. lépés feladata 3.3. A trigger és a tárolt eljárások ellenőrzése érdekében végezze el a szükséges adatfelviteleket. 3. lépés feladatának megoldása (A felügyelt adatbevitel ellenőrzése) Az alábbiakban ellenőrizni kell az F-a., F-b1., F-b2. és F-b3. feltételek mindegyikének teljesülését és nem teljesülését. Ennek célszerű módja olyan adatfelviteleket készíteni, melyekben mindig csak egy feltétel nem-teljesülését és teljesülését vizsgáljuk. Mivel az F-a. feltétel teljesülése az összes többihez szükséges, így mindössze hét adatfelvitel szükséges a teljes ellenőrzéshez lépés (Adatlekérdezések az ellenőrzéshez) -- Részlegenkénti munkaköri átlagok (az F-b1. feltétel vizsgálatához) SELECT deptno Részleg, job Munkakör, ROUND(AVG(sal)*3/4) "RészlegMunkakörÁtlag 3/4-e" GROUP BY deptno, job; RÉSZLEG MUNKAKÖR RészlegMunkakörÁtlag 3/4-e CLERK MANAGER PRESIDENT CLERK ANALYST MANAGER CLERK MANAGER SALESMAN 1050 #03_PL-SQL Feladatgyűjtemény [06]

28 9 sor kijelölve. -- Részlegátlagok (az F-b2. feltétel vizsgálatához) SELECT deptno Részleg, ROUND(AVG(SAL)*2/3)+300 "2/3-ad RészlegÁtlag + 300" GROUP BY deptno; RÉSZLEG 2/3-ad RészlegÁtlag lépés (Ellenőrzések) Ellenőrzés: -- Az F-a. (Részlegfeltétel) NEM-teljesülésének vizsgálata INSERT INTO dolgozó VALUES(1234,'Péter(a)','SALESMAN',7698,' ',2000,NULL,50); > A felviendő dolgozó: Péter(a) INSERT INTO dolgozó * Hiba a(z) 1. sorban: ORA-20110: >>HIBA: A Részlegfeltétel nem teljesül! ORA-06512: a(z) "SCOTT.RÉSZLEGFELTÉTEL", helyen a(z) 11. sornál ORA-06512: a(z) "SCOTT.ADATFELÜGYELŐ", helyen a(z) 3. sornál ORA-04088: hiba a(z) 'SCOTT.ADATFELÜGYELŐ' trigger futása közben Ellenőrzés: -- Az F-a. (Részlegfeltétel) teljesülése mellett -- az F-b1. (Fizetési feltétel, RészlegMunkakör Fiz.átlag 3/4-e) vizsgálata INSERT INTO dolgozó VALUES(1234,'János1(b1)','SALESMAN',7698,' ',1049,NULL,30); INSERT INTO dolgozó VALUES(1234,'János2(b1)','SALESMAN',7698,' ',1050,NULL,30); > A felviendő dolgozó: János1(b1) OK! (A Részlegfeltétel teljesül.) > 3/4 * MunkakörÁtlag = 1050 INSERT INTO dolgozó * Hiba a(z) 1. sorban: ORA-20111: >>HIBA: Az új fizetés kisebb, mint a részlegbeli munkaköri átlag 3/4-e! ORA-06512: a(z) "SCOTT.FIZETÉSFELTÉTEL", helyen a(z) 78. sornál ORA-06512: a(z) "SCOTT.ADATFELÜGYELŐ", helyen a(z) 4. sornál ORA-04088: hiba a(z) 'SCOTT.ADATFELÜGYELŐ' trigger futása közben > A felviendő dolgozó: János2(b1) OK! (A Részlegfeltétel teljesül.) > 3/4 * MunkakörÁtlag = 1050 OK! (Az új fizetés a részlegbeli munkaköri átlag 3/4-nél több.) János2(b1): OK! 1 sor létrejött Ellenőrzés: -- Az F-a. (Részlegfeltétel) teljesülése mellett -- az F-b2. (Fizetési feltétel, 2/3-ad RészlegÁtlag + 300) NEM-teljesülésének vizsgálata INSERT INTO dolgozó VALUES(1234,'Éva1(b2)','TANULÓ',7698,' ',1749,NULL,20); INSERT INTO dolgozó VALUES(1234,'Éva2(b2)','TANULÓ',7698,' ',1750,NULL,20); > A felviendő dolgozó: Éva1(b2) OK! (A Részlegfeltétel teljesül.) #03_PL-SQL Feladatgyűjtemény [06]

29 > 2/3 * RészlegÁtlag = 1750 INSERT INTO dolgozó * Hiba a(z) 1. sorban: ORA-20112: >>HIBA: Az új fizetés kisebb, mint a részlegátlag 300 USD-vel megnövelt értéke! ORA-06512: a(z) "SCOTT.FIZETÉSFELTÉTEL", helyen a(z) 57. sornál ORA-06512: a(z) "SCOTT.ADATFELÜGYELŐ", helyen a(z) 4. sornál ORA-04088: hiba a(z) 'SCOTT.ADATFELÜGYELŐ' trigger futása közben > A felviendő dolgozó: Éva2(b2) OK! (A Részlegfeltétel teljesül.) > 2/3 * RészlegÁtlag = 1750 OK! (Az új fizetés a részlegátlag 2/3-ánál min. 300 USD-vel több.) Éva2(b2): OK! 1 sor létrejött Ellenőrzés: -- Az F-a. (Részlegfeltétel) teljesülése mellett -- az F-b3. (Fizetési feltétel, a részlegben még nincs dolgozó) NEM-teljesülésének vizsgálata INSERT INTO dolgozó VALUES(1234,'Ágnes1(b3)','SALESMAN',7698,' ',1999,NULL,40); INSERT INTO dolgozó VALUES(1234,'Ágnes2(b3)','SALESMAN',7698,' ',2000,NULL,40); > A felviendő dolgozó: Ágnes1(b3) OK! (A Részlegfeltétel teljesül.) INSERT INTO dolgozó * Hiba a(z) 1. sorban: ORA-20113: >>HIBA: Az új fizetés kisebb 2000 USD-nél! ORA-06512: a(z) "SCOTT.FIZETÉSFELTÉTEL", helyen a(z) 27. sornál ORA-06512: a(z) "SCOTT.ADATFELÜGYELŐ", helyen a(z) 4. sornál ORA-04088: hiba a(z) 'SCOTT.ADATFELÜGYELŐ' trigger futása közben > A felviendő dolgozó: Ágnes2(b3) OK! (A Részlegfeltétel teljesül.) OK! (Az új fizetés legalább 2000 USD.) Ágnes2(b3): OK! 1 sor létrejött. 4. lépés feladata 3.5. Utolsó lépésként listázza a dolgozó táblát, majd állítsa vissza az eredeti táblatartalmat. 4. lépés feladatának megoldása -- A dolgozó tábla listázása és adatvisszaállítás SELECT * ; ROLLBACK; SELECT * ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN JAMES CLERK WARD SALESMAN FORD ANALYST SMITH CLERK SCOTT ANALYST ADAMS CLERK MILLER CLERK #03_PL-SQL Feladatgyűjtemény [06]

30 1234 János2(b1) SALESMAN Éva2(b2) TANULÓ Ágnes2(b3) SALESMAN sor kijelölve. A visszaállítás befejeződött. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN JAMES CLERK WARD SALESMAN FORD ANALYST SMITH CLERK SCOTT ANALYST ADAMS CLERK MILLER CLERK sor kijelölve. #03_PL-SQL Feladatgyűjtemény [06]

31 Melléklet Dinamikus SQL Dinamikus SQL PROMPT >>> első példa >>> SET SERVEROUTPUT ON ACCEPT azon PROMPT 'Kérem a keresendő név azonosítóját: ' DECLARE nev VARCHAR2(20); azon NUMBER(4); sqlsztring VARCHAR2(100); BEGIN sqlsztring := 'SELECT ename FROM emp WHERE empno = :1'; EXECUTE IMMEDIATE sqlsztring INTO nev USING &azon; DBMS_OUTPUT.PUT_LINE('A keresett név: ' nev); end; / aa1 Adja meg a(z) azon értékét: 7788 régi 10: USING &azon; új 10: USING 7788; A keresett név: SCOTT A PL/SQL eljárás sikeresen befejeződött. Interaktív dinamikus sql. A lekérdezést, vagy PL/SQL blokkot szrtingként adjuk meg a végrehajtó blokkban. Hivás az EXECUTE IMMEDIATE és a Select vagy PL/SQL blokk sztringként Amennyiben interaktívan akarjuk használni a dinamikus SQL-t, akkor & -tel hivatkozunk rá. jobb megoldás ha paraméterezetten használjuk. Ekkor a paraméterek sorszámát adjuk meg a SELECT-ben, és a USING záradék után írjuk a paramétert. PROMPT >>>> második példa >>>> ACCEPT azon PROMPT 'Kérem a keresendő rekord azonosítóját: ' DECLARE nev Varchar2(20); azon NUMBER(4); foglalkoz emp.job%type; fizetes emp.sal%type; reszleg emp.deptno%type; sqlsztring VARCHAR2(100); BEGIN sqlsztring := 'SELECT ename, job, sal, deptno ' 'FROM emp' ' WHERE empno = :1'; EXECUTE IMMEDIATE sqlsztring INTO nev,foglalkoz, fizetes, reszleg USING &azon; #03_PL-SQL Feladatgyűjtemény [06]

2012. április 27. TARTALOM

2012. április 27. TARTALOM KENDE MÁRIA - NAGY ISTVÁN PL/SQL FELADATGYŰJTEMÉNY TARTALOM 9. Foglalkozás Hivatkozási és összetett adattípusok, kurzor, ROWID... 2 10. Foglalkozás Összefoglaló feladatok... 15 Melléklet Dinamikus SQL...

Részletesebben

Adatbázis használat I. 2. gyakorlat

Adatbázis használat I. 2. gyakorlat Adatbázis használat I. 2. gyakorlat Tudnivalók Oracle 10g a weben: http://www.oracle.com/technetwork/databa se/database10g/downloads/index.html FF kiírásokat legkésőbb a jövő hétre hozni! 2011. 02. 15.

Részletesebben

ADATBÁZIS HASZNÁLAT I. 4. gyakorlat

ADATBÁZIS HASZNÁLAT I. 4. gyakorlat ADATBÁZIS HASZNÁLAT I. 4. gyakorlat Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!

Részletesebben

Adatbázis használat I. 2. gyakorlat

Adatbázis használat I. 2. gyakorlat Adatbázis használat I. 2. gyakorlat Tudnivalók Oracle 10g a weben: http://www.oracle.com/technetwork/database/ database10g/downloads/index.html Egyéb letöltési lehetőség: http://jerry.gorextar.hu/ab1/oracle/

Részletesebben

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

PL/SQL (folytatás) Kurzorok, függvények, eljárások PL/SQL (folytatás) Kurzorok, függvények, eljárások Kurzorok Adattábla soronkénti feldolgozására szolgál A memóriában egy munkaterületen tárolódik a kurzorhoz tartozó tábla A kurzor az eredményhalmazban

Részletesebben

2007. február 25. TARTALOM

2007. február 25. TARTALOM KENDE MÁRIA - NAGY ISTVÁN ANALITIKUS SQL FELADATGYŰJTEMÉNY TARTALOM 9. Foglalkozás Részletező csoportosítások... 2 10. Foglalkozás Analitikus függvények... 5 Melléklet A ROW_NUMBER szintaktikája... 10

Részletesebben

Adatbázis használat I. 5. gyakorlat

Adatbázis használat I. 5. gyakorlat Adatbázis használat I. 5. gyakorlat Tudnivalók Jövő hétre a normalizálást hozni vagy e- mailben beküldeni! 7. héten (= két hét múlva!) nagyzh + FF checkpoint: adattáblák feltöltése, megszorítások 2010.

Részletesebben

1.1. Feladat Listázza ki a 20-as részleg dolgozóinak nevét, belépési idejét, foglalkozását a nevek szerint csökkenően rendezve.

1.1. Feladat Listázza ki a 20-as részleg dolgozóinak nevét, belépési idejét, foglalkozását a nevek szerint csökkenően rendezve. SELECT * ; SELECT * FROM dept; 1.1. Feladat Listázza ki a 20-as részleg dolgozóinak nevét, belépési idejét, foglalkozását a nevek szerint csökkenően rendezve. SELECT ename, hiredate, job WHERE deptno=20

Részletesebben

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

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális) Csomagok Csomag Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll specifikáció törzs (opcionális) Csomagspecifikáció CREATE [OR REPLACE] PACKAGE csomagnév [AUTHID {DEFINER CURRENT_USER}]

Részletesebben

Oracle Példatár (SQL-PL/SQL)

Oracle Példatár (SQL-PL/SQL) KENDE MÁRIA NAGY ISTVÁN Oracle Példatár (SQL-PL/SQL) (FELADATGYŰJTEMÉNY) PANEM Tartalomjegyzék KENDE MÁRIA NAGY ISTVÁN...1 Oracle Példatár (SQL-PL/SQL)...1 PANEM...1 Tartalomjegyzék...2 1. fejezet...4

Részletesebben

PL/SQL feladatok 8. gyakorlat

PL/SQL feladatok 8. gyakorlat 1. feladat PLSQL feladatok 8. gyakorlat Változóhasználat (I. az SQL*Plus felhasználói változói, II. az SQL*Plus környezeti változói, III. a PLSQL (belsõþ) változói). Az adatok képernyõþre való kiíratása

Részletesebben

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

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 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 Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:

Részletesebben

Tranzakciókezelés PL/SQL-ben

Tranzakciókezelés PL/SQL-ben Tranzakciókezelés PL/SQL-ben ACID tulajdonságok: Tranzakció Atomosság, Konzisztencia, Izoláció, Tartósság A tranzakció állhat: - Több DML utasításból - Egy DDL utasításból A tranzakció kezdete az első

Részletesebben

2012. április 13. TARTALOM

2012. április 13. TARTALOM KENDE MÁRIA - NAGY ISTVÁN SQL BEVEZETŐ FELADATGYŰJTEMÉNY TARTALOM Előszó... 2 Megjegyzés... 2 0. Foglalkozás Adatbázis tervezés... 3 1. Foglalkozás Az SQL használatának alapjai, Egyszerű lekérdezések...

Részletesebben

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP SELECT * FROM emp; SELECT ename FROM emp; (projekció) SELECT ename FROM emp WHERE ename='jones'; (szelekció) ------------------------------------------ SELECT DISTINCT deptno FROM emp; (distinct) --------------------------------

Részletesebben

Haladó DBMS ismeretek 1

Haladó DBMS ismeretek 1 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

Részletesebben

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

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja: ORACLE TRIGGEREK A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja: CREATE [OR REPLACE] TRIGGER név { BEFORE AFTER INSTEAD OF } { DELETE INSERT UPDATE [OF oszlopok]

Részletesebben

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

PL/SQL 1. rész. Procedural Language extension to SQL PL/SQL 1. rész Procedural Language extension to SQL utasítást ; zárja le PL/SQL blokk lezárása: / Szintaxis kis- és nagybetű egyenértékű (az utasításokban a kulcsszavakat szoktuk nagybetűvel írni, de nem

Részletesebben

KENDE MÁRIA NAGY ISTVÁN: Oracle Példatár(SQL-PL/SQL) Házi feladatok a 3.gyakorlathoz: 1. fejezet: Egyszerű lekérdezések

KENDE MÁRIA NAGY ISTVÁN: Oracle Példatár(SQL-PL/SQL) Házi feladatok a 3.gyakorlathoz: 1. fejezet: Egyszerű lekérdezések KENDE MÁRIA NAGY ISTVÁN: Oracle Példatár(SQL-PL/SQL) Házi feladatok a 3.gyakorlathoz: 1. fejezet: Egyszerű lekérdezések 1.1. Feladat Listázza ki a 20-as részleg dolgozóinak nevét, belépési idejét, foglalkozását

Részletesebben

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

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs

Részletesebben

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

B I T M A N B I v: T 2015.03.01 M A N Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs

Részletesebben

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

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet 26/1 B IT v: 2018.02.21 MAN Gyakorló környezet apex.oracle.com/en/ 26/2 A regisztrációs folyamat 26/3 26/4 26/5 26/6 26/7 26/8 26/9 26/10 26/11 Feladatok

Részletesebben

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Adatbázisok I 1 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 Módosítás: DML: - rekord felvitel INSERT - rekord törlés

Részletesebben

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

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v: B IT MAN 65/1 Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN v: 2016.02.27 Ellenőrző kérdések 1. B IT MAN 65/2 1. Egy bemenő paraméter nélküli tárolt rutin visszaad egy értéket. Ez a rutin:

Részletesebben

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

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai: 8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző

Részletesebben

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal. Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása

Részletesebben

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]

Részletesebben

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

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) közönséges felhasználók Oracle SQL*Plus SQL ORACLE 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 Adatszótár: metaadatokat tartalmazó, csak olvasható

Részletesebben

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

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY

Részletesebben

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére SQL PÉLDATÁR készült a PTE TTK Iskolai informatika III. kurzus teljesítésére PTE TTK Czimmermann Gergely MA matematika informatika tanár szakos hallgató 2017 Tartalomjegyzék 1. Adatleíró műveletek... 3

Részletesebben

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

Adatbázis Rendszerek II. 2. Gyakorló környezet Adatbázis Rendszerek II. 2. Gyakorló környezet 37/1 B IT v: 2017.02.11 MAN Gyakorló környezet Géptermek 37/2 Jelszó váltás 1 2 3 4 37/3 Gyakorló környezet II. apex.oracle.com/en/ 37/4 A regisztrációs folyamat

Részletesebben

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,

Részletesebben

Adatbázis rendszerek SQL nyomkövetés

Adatbázis rendszerek SQL nyomkövetés Adatbázis rendszerek 1. 12. SQL nyomkövetés 1/32 B ITv: MAN 2017.10.26 Nyomkövetési feladat 2/32 Gyakorló feladatok Termék-Vásárlás-Vásárló Oktató-Tantárgy-Hallgató 3/32 Gyakorló feladat: Termék-Vásárlás-Vásárló

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 3. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Tábla kapcsolatok létrehozása,

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8

Részletesebben

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT ADATBÁZISOK 9-10. gyakorlat: SQL 2. rész SELECT SELECT utasítás általános alakja SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel] [GROUP BY oszloplista [HAVING feltétel] ] [ORDER BY oszloplista];

Részletesebben

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

Adatbázis kezelés Delphiben. SQL lekérdezések Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja

Részletesebben

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

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN B IT v: 2016.03.04 MAN Passzív adatbázisok negatívumai Példa: VIR rendszer egyik adatbázis összegyűjti a termelési adatokat, egy másik erre épül

Részletesebben

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis-lekérdezés. Az SQL nyelv. Makány György Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési

Részletesebben

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT ÓBUDAI EGYETEM Neumann János Informatikai Kar Nappali Tagozat ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT NÉV: MÁK VIRÁG NEPTUN KÓD: A DOLGOZAT CÍME: Jani bácsi székadatbázisa Beadási határidő: 14. oktatási hét

Részletesebben

Adatbázis használat I. 1. gyakorlat

Adatbázis használat I. 1. gyakorlat Adatbázis használat I. 1. gyakorlat Tudnivalók Nagy Gabriella nagy.gabriella@nik.uni-obuda.hu BA. 306. szoba www.orakulum.com => Adatbázis-kezelés => AKT (Adatbázis-Kezelés Technológiája) 2011. 02. 08.

Részletesebben

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

Kalmár György Adatbázis alapú rendszerek Kalmár György Adatbázis alapú rendszerek Oracle-ben az SQL utasítások feldolgozásához szükség van egy ún. kontextus memóriára, amely az összes lényeges információt tárolja egy utasítás végrehajtásához.

Részletesebben

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

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé Triggerek Triggerek Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé egy eseményre válaszul futnak le a triggernevek külön névteret alkotnak Esemény bekövetkezésének

Részletesebben

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

B I T M A N B I v: T 2015.03.09 M A N Adatbázis Rendszerek II. 5. Gy: PLSQL Triggerek B I v: T 2015.03.09 M A N 1/37 Passzív adatbázisok negatívumai Példa: VIR rendszer egyik adatbázis összegyűjti a termelési adatokat, egy másik erre épül

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,

Részletesebben

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. [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 [címke] [DECLARE deklarációs utasítás(ok)] végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név]; PL/SQL alprogramok Blokkba ágyazva Séma szinten Csomagban PL/SQL alprogramok Eljárás:

Részletesebben

SQL parancsok feldolgozása

SQL parancsok feldolgozása Az SQL nyelv SQL nyelv szerepe Sequental Query Language, deklaratív nyelv Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM) Algoritmus szerkezeteket

Részletesebben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2 Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3

Részletesebben

Együttes hozzárendelés

Együttes hozzárendelés Együttes hozzárendelés Együttes hozzárendelés Hozzárendelés: az a tevékenységet, amikor egy PL/SQLváltozónak egy SQL-utasításban adunk értéket. Együttes hozzárendelés: Egy kollekció minden elemének egyszerre

Részletesebben

LBRA6i integrált rendszer

LBRA6i integrált rendszer LBRA6i integrált rendszer LIBRA 6i logolás és a log megtekintése Készítette: Libra Szoftver Zrt. Létrehozás dátuma: 2005.12.15. Utolsó módosítás: 2014.10.30. Referencia szám: LIBRA6i_UZEM_V_1.5 Verzió:

Részletesebben

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

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

SQL DDL-2 (aktív elemek) triggerek

SQL DDL-2 (aktív elemek) triggerek SQL DDL-2 (aktív elemek) triggerek Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 7.fej.: Megszorítások és triggerek 7.4. Önálló megszorítások 7.5. Triggerek

Részletesebben

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2 Az indexelés újdonságai Oracle Database 12c R1 és 12c R2 Szabó Rozalinda Oracle adattárház szakértő, oktató szabo.rozalinda@gmail.com Index tömörítés fejlődése 8.1.3-as verziótól: Basic (Prefixes) index

Részletesebben

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

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők

Részletesebben

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

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

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

Adatbázis-kezelés, információs-rendszerek Adatbázis-kezelés, információs-rendszerek 3. Ea: Eskúel (2011) Structured Query Language v: 2011.09.05 Szűcs Miklós - ME, ÁIT. 1.o Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások

Részletesebben

A könyv tartalomjegyzéke

A könyv tartalomjegyzéke A könyv tartalomjegyzéke Elıszó Bevezetés Adatbázis-kezelı rendszerek Adatmodellezés Alapfogalmak Egyedhalmaz, egyed Kapcsolat, kapcsolat-elıfordulás, kapcsolat típusa Tulajdonság, tulajdonságérték, értékhalmaz

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

Részletesebben

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei 1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása

Részletesebben

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

B I T M A N B I v: T 2015.02.22 M A N Adatbázis Rendszerek II. 2. Gy: PLSQL 1. B I v: T 2015.02.22 M A N 1/75 A PL/SQL alapjai A PL/SQL alapjai Változók DBMS_OUTPUT Vezérlési szerkezetek Tömbök Tárolt rutinok kezelése 2/75 Tárolt eljárások

Részletesebben

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

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 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 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,

Részletesebben

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

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai 8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló

Részletesebben

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

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A 1-1 Adatbázisok II. 1 Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1 Ajánlott irodalom Ullman-Widom: Adatbázisrendszerek. Alapvetés (Második, átdolgozott kiad), Panem, 2008. november (bővítés pl.uml,

Részletesebben

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14 Adatbázisok 9. gyakorlat SQL: SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 14 SQL SELECT Lekérdezésre a SELECT utasítás szolgál, mely egy vagy több adattáblából egy eredménytáblát állít el

Részletesebben

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

Adatbázis Rendszerek II. 8. Gyakorló környezet Adatbázis Rendszerek II. 8. Gyakorló környezet 1/24 B IT v: 2017.10.26 MAN Gyakorló környezet Géptermek 193.6.5.58:8080/apex H16_neptunkód ADMIN neptunkód 2/24 Jelszó váltás 1 2 3 4 3/24 Gyakorló környezet

Részletesebben

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) ); Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) ); CREATE TABLE `dihunor`.`csapat` ( `ID` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'A csapat azonositoja',

Részletesebben

Adatbázisok I. Az SQL nyelv

Adatbázisok I. Az SQL nyelv Adatbázisok I Az SQL nyelv SQL (Structured Query Language) Deklaratív nyelv, 1974-ben publikálták Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM)(Structured

Részletesebben

Készítette: Szabóné Nacsa Rozália

Készítette: Szabóné Nacsa Rozália Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1 Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2 DIAKOK dkód vnév knév 1001 Kiss János

Részletesebben

Az SQL*Plus használata

Az SQL*Plus használata Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus

Részletesebben

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2013. március 20.

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2013. március 20. ADATBÁZISOK I. Szerkesztette: Bókay Csongor Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2013. március 20. Ez a Mű a Creative Commons Nevezd meg! - Ne add el!

Részletesebben

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1 SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása

Részletesebben

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

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 Adatbázisok I 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 Módosítás: DML: - rekord felvitel INSERT - rekord törlés

Részletesebben

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31 Adatbázisok 2. gyakorlat SQL 2016. november 12. 2016. november 12. Adatbázisok 1 / 31 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A relációs adatbáziskezelés szabványos nyelve Két f

Részletesebben

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

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL Témavezető: Dr. Bajalinov Erik Tudományos főmunkatárs Készítette: Juhász Gergely József Informatikatanári

Részletesebben

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

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) 2014. október 22. 2014. október 22. Adatbázisok 1 / 14 SQL nyelv Structured Query Language Struktúrált lekérdez nyelv A

Részletesebben

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

Adatbázis-kezelés. Harmadik előadás Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord

Részletesebben

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

Adatbázisok elmélete 10. előadás Adatbázisok elmélete 10. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2004 ADATBÁZISOK ELMÉLETE

Részletesebben

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni: 1 Adatbázis kezelés 4. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni: Adatlekérdezés Tábla létrehozása,

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0631 ÉRETTSÉGI VIZSGA 2006. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

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

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik

Részletesebben

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

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben? Adatbázis modellek 5. téma XML DB Az adatkezelés és XML kapcsolata Miért fontos az XML használata az adatbázis kezelésben? Adattárolás alapformái: - strukturált - szabad-szöveges - szemi struktúrált -

Részletesebben

Adatbázisban tárolt kollekciók

Adatbázisban tárolt kollekciók Adatbázisban tárolt kollekciók Dinamikus tömb és beágyazott tábla lehet CREATE TYPE t_beagy IS TABLE OF NUMBER; CREATE TYPE t_dint IS VARRAY(5) OF NUMBER; CREATE TABLE koll_tab ( azon NUMBER PRIMARY KEY,

Részletesebben

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

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;... Összefoglaló PL/SQL alapok: Minden utasítást pontos vesszővel zárunk le. 1. Változó deklaráció: [:=]; 2. Paraméter megadása (adattípusra itt nem lehet megszorítás!):

Részletesebben

Bevezetés: az SQL-be

Bevezetés: az SQL-be Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak

Részletesebben

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.

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. OO PDO PDO VS MYSQLi VS MYSQL ================================================================================ A PHP mysql metódusai elavultak, helyette lehet hazsnálni a MYSQLi metódusokat, amelyek szinte

Részletesebben

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.

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. PL/SQL architektúra 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. Oracle Forms) Ha nincs benne SQL-utasítás, a teljes egység

Részletesebben

Adatbázisok II. rész

Adatbázisok II. rész Adatbázisok II. rész Érettségi feladatok Új adatbázist készítünk A táblákat a külső adatok menüfül szövegfájl pontjánál importáljuk (nem pedig megnyitjuk!) Fontos: az első sor tartalmazza az oszlopneveket

Részletesebben

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

Kivételkezelés 2. SQLCODE lehetséges értékei: Kivételkezelés Kivételkezelés 1 Futási időben bekövetkező hibák beépített (futtató rendszer váltja ki): előre definiált nem előre definiált felhasználói Az előre definiált és a felhasználói kivételeknek

Részletesebben

BEVEZETÉS Az objektum fogalma

BEVEZETÉS Az objektum fogalma BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1 Program (1) Adat (2) Objektum Adatmodell (2) A valós világ

Részletesebben

Elemi alkalmazások fejlesztése IV.

Elemi alkalmazások fejlesztése IV. Structured Query Language (Struktúrált lekérdez ı nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány né Nacsa Rozália nacsa@inf.elte.hu Fejlesztı : MySQLAB weboldal: www.mysql.com MySQL installálása.

Részletesebben

Adatbázisok I. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1

Adatbázisok I. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1 Adatbázisok I. 4 Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A 1-1 Relációs algebra alapja a konkrét lekérdez nyelveknek ő egy speciális algebra, egy halmazorientált nyelv, amely a lekérdezéseket

Részletesebben

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok 1 Jogosultság-kezelés Egy fájlrendszer általában jogosultságokat rendel az általa kezelt objektumokhoz. Tipikusan olvasható, írható,

Részletesebben

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

Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN B IT v: 2017.03.02 MAN A PL/SQL alapjai Adatok kezelése Kurzorok Hibakezelés 53/2 B IT MAN Adatok kezelése PL/SQL-ben Műveletek: Írás

Részletesebben

Bevezetés az SQL*Plus környezet, és az SQL nyelv használatába

Bevezetés az SQL*Plus környezet, és az SQL nyelv használatába 3. MELLÉKLET Bevezetés az SQL*Plus környezet, és az SQL nyelv használatába Tartalomjegyzék Bevezetés...1 Belépés az SQL*Plus környezetbe...2 Felhasználói táblák lekérdezése...4 Felhasználói katalógus és

Részletesebben

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL a relációs adatbázis-kezelő rendszerek ma legelterjedtebb szabványosított adatbáziskezelő nyelve. Az IBM dolgozta ki 1983-ban,

Részletesebben

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009 Adatbázisok elleni fenyegetések rendszerezése Fleiner Rita BMF/NIK Robothadviselés 2009 Előadás tartalma Adatbázis biztonsággal kapcsolatos fogalmak értelmezése Rendszertani alapok Rendszerezési kategóriák

Részletesebben

Adatbázis, adatbázis-kezelő

Adatbázis, adatbázis-kezelő Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,

Részletesebben

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

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Adatbázisok-1 előadás Előadó: dr. Hajas Csilla Áttekintés az I.zh-ig Áttekintés az 1ZH-ig // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 Hol tartunk? Mit tanultunk

Részletesebben