ADATBÁZISOK
ADMINISZTRÁCIÓS ISMERETEK
obuda.hu 3 RENDSZER-JOGOSULTSÁGOK CREATE SESSION – Bejelentkezési jog, MINDIG KELL CREATE TABLE – Tábla létrehozása CREATE VIEW – Nézet létrehozása CREATE PROCEDURE – Eljárás létrehozása (PL/SQL) CREATE USER – Felhasználó létrehozása ALTER ANY TABLE – Tábla módosítása ALTER ANY TRIGGER – Trigger módosítása (PL/SQL) SELECT ANY TABLE – Akármilyen SELECT DROP ANY TABLE – Tábla törlése DROP USER – Felhasználó törlése ALL PRIVILEGES – MINDEN
obuda.hu 4 SZEREPEK, FELHASZNÁLÓK CREATE USER {név} IDENTIFIED BY {jelszó}; –Jelszóban ' nem jó, maximum " –Felhasználói névben egyik sem DROP USER {név}; Szerep ~ Jogosultság-csoport CREATE ROLE {szerep}; DROP ROLE {szerep};
obuda.hu 5 RENDSZER-JOGOSULTSÁGOK BEÁLLÍTÁSA GRANT {jogosultság-lista} TO {szerepnév/usernév}; "WITH GRANT OPTION": továbbadhatóság (!) GRANT {szerepnév} TO {usernév}; REVOKE {jogosultság-lista / szerepnév} FROM {usernév};
obuda.hu 6 OBJEKTUM-JOGOSULTSÁGOK SELECT INSERT UPDATE DELETE ALTER EXECUTE – Közvetlen végrehajtási jog (PL/SQL) READ – Olvasási jog, file-okra vonatkozik REFERENCES – Megszorítások hozzáadása INDEX – CREATE INDEX engedélyezése
obuda.hu 7 OBJEKTUM-JOGOSULTSÁGOK BEÁLLÍTÁSA GRANT {jogosultság-lista} ON {objektum} TO {felhasználó} [WITH GRANT OPTION]; REVOKE {jogosultás-lista / ALL} ON {objektum} FROM {felhasználó}; TABLESPACE: könyvben, CREATE USER-nél is !!!
obuda.hu 8 connect system/gazda as sysdba Hozzunk létre GUEST, USERS, ADMIN és ROOT jogosultság-csoportokat GUEST csak bejelentkezni és lekérdezni, USERS táblát módosítani és létrehozni, ADMIN táblát törölni is tud. Egy ROOTnak minden jogosultsága van Mindegyik szerephez hozzunk létre usereket Ezután töröljük az összes usert és szerepet
obuda.hu 9 FÉLÉVES FELADAT Következő alkalom: Create Table + Insert Into + néhány lekérdezés Mindegyik lekérdezés: sorszám + SQL + NORMÁLISAN KINÉZŐ kimenet + filenév ( CD mellékleten) FF Pontozás, lekérdezés darabszámok! Pót ZH: jövő péntek délután
ISMÉTLÉS…
SELECT (DQL) Záradékok sorrendje 1.FROM 2.WHERE 3.GROUP BY 4.HAVING 5.UNION/MINUS 6.INTERSECT 7.ORDER BY 8.INTO obuda.hu
TÁBLÁK ÖSSZEKAPCSOLÁSA
TÁBLÁK ÖSSZEKAPCSOLÁSA SELECT * FROM emp dolgozo LEFT JOIN emp fonok ON (dolgozo.mgr=fonok.empno) LEFT JOIN dept fon_reszl ON (fonok.deptno=fon_reszl.deptno) LEFT JOIN dept dolg_reszl ON (dolgozo.deptno=dolg_reszl.deptno); TÖKÉLETES
TÁBLÁK ÖSSZEKAPCSOLÁSA SELECT * FROM emp dolgozo, emp fonok, dept dolg_reszl, dept fon_reszl WHERE dolgozo.mgr=fonok.empno (+) AND dolgozo.deptno=dolg_reszl.deptno (+) AND fonok.deptno=fon_reszl.deptno (+); TÖKÉLETES (+) elhagyható, ha nincs utalás a párral nem rendelkező rekordokra
DDL, DML create view, rownum create table, drop table, rename, alter table, oszlop- és tábla-megszorítások Kulcsok rendszere insert into, update, delete from savepoint, rollback, commit „client tells us when to commit” ???
FELADAT
Konzisztens módon hozzon létre egy dolgozó8 nevű táblát az emp tábla RESEARCH és SALES részlegbeli azon dolgozóiból, akik főnökének van főnöke, továbbá egy részleg8 nevű táblát a dept táblából. E táblák létrehozása előtt győződjön meg róla, hogy az adott néven nem létezik-e már másik objektum, és ha igen, törölje azt. A további feladatok e táblákra vonatkoznak. A megoldások során rendszeresen alkalmazzon nézettáblákat!
Egy szkript programban végezzen megszorítás hozzáadást, ellenőrzést és visszaállítást az alábbi módon: Egy MANAGER munkakörű dolgozó csak 2000 és 3000 USD közötti fizetést kaphat. Az MGR oszlop legyen idegen kulcs, és mutasson az EMPNO oszlopra. Kiséreljen meg egy megfelelő és egy nem megfelelő rekordot felvinni. Listázással ellenőrizze e műveletek végrehajtását, majd visszaállítás után annak hatását.
Bővítse a dolgozó8 táblát egy jutalom oszloppal, és töltse fel ezt olymódon, hogy akinek nagyobb a jövedelme, mint részlegének átlagjövedelme, az 400 USD jutalmat kapjon, a többiek pedig 800 USD-t.
Bővítse a dolgozó8 táblát egy jutalom oszloppal, és töltse fel ezt olymódon, hogy akinek valamelyik közvetlen beosztottja az ő jövedelmének felénél többet keres, az 1000 USD jutalmat kapjon, a többiek pedig 600 USD-t.
Listázza formázva (fej-, és lábléccel, stb.) a dolgozók nevét, munkakörét, telephelyét, a jutalmat is tartalmazó összjövedelmét, és a főnökének nevét, elsődlegesen a főnök neve szerint növekvően, másodlagosan a dolgozók neve szerint csökkenő módon rendezve. Ha egy dolgozónak nincs főnöke, akkor a főnök adatainak helyére írja ki, hogy "nincs főnöke".
GYAKOROLNI