Programozás | SQL » SQL DDL, DML, DCL utasítások gyakorlása Oracle RDBMS-ben

Alapadatok

Év, oldalszám:2008, 3 oldal

Nyelv:magyar

Letöltések száma:100

Feltöltve:2012. május 31.

Méret:29 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!

Tartalmi kivonat

9. Gyakorlat SQL DDL, DML, DCL utasítások gyakorlása Oracle RDBMS-ben Adatbázis elérése: http://arrakis.iituni-miskolchu:5560/isqlplus Bejelentkezés adatbázisba: username: neptunkód password: neptunkód connect identifier: info Bejelentkezett felhasználó lekérdezése (Oracle): SELECT USER FROM DUAL; A DUAL technikai „helypótló” tábla, azért van rá szükség, mert a SELECT szintaktikája megköveteli a FROM rész megadását. Jelszó módosítása: ALTER USER felhasználónév IDENTIFIED BY újjelszó; Az Oracle RDBMS a kulcsszavak tekintetében nem érzékeny a kis- és nagybetűkre, viszont az adatbázis objektumok, és az adatbázisban tárolt adatok tekintetében igen! Oracle típusok: number (n [, m]), char (n), date Tekintsük az alábbi relációs sémákat: EMBER [id, név, város] AUTO [rsz, tulaj, tipus, szin, ar] Végezzük el a következő műveleteket (lásd 8. gyakorlat): 1. Hozzuk létre a táblákat A táblalétrehozás sorrendje a hivatkozás miatt

kötött! Alternatív megoldás: az auto táblában nem jelöljük ki a hivatkozást, ekkor tetszőleges sorrendben létrehozhatók a táblák, majd az ALTER utasítással utólag kijelöljük a hivatkozást. CREATE TABLE ember ( id char(8) primary key, nev char(15) not null, varos char(20) ); CREATE TABLE auto ( rsz char(6) primary key, tulaj references ember, tipus char(10), szin char(10), ar number(8) check (ar > 0) ); Létrehozott táblák lekérdezése (Oracle): SELECT OBJECT NAME FROM USER OBJECTS WHERE OBJECT TYPE LIKE ’TABLE%’; SELECT TABLE NAME FROM USER TABLES; 2. Módosítsuk az autó tábla szerkezetét, vigyünk fel egy évjárat mezőt ALTER TABLE auto ADD ( evjarat number(4) ); 3. Vigyünk fel 2-2 rekordot a táblákba Adatfelvitelhez ismerni kell a táblák szerkezetét Táblaszerkezet lekérdezése: DESCRIBE ember; DESCRIBE auto; INSERT INTO ember VALUES ( ’111111AA’, ’Kiss Ferenc’, ’Miskolc’, ); INSERT INTO ember VALUES ( ’222222BB’, ’Nagy

Lajos’, null ); INSERT INTO auto VALUES ( ’111aaa’, ’111111AA’, ’Skoda’, ’piros’, 2500000, 2005 ); INSERT INTO auto VALUES ( ’222aaa’, ’111111AA’, ’VW’, ’fekete’, 3000000, 2007 ); Adatfeltöltés ellenőrzése (ember és autó adatok lekérdezése): SELECT * FROM ember; SELECT * FROM auto; 4. Hozzunk létre egy MISKOLCIEMBEREK táblát, ahová átmásoljuk az emberek táblából a miskolciakat. A táblaszerkezet módosításával adjuk meg az integritási feltételeket. CREATE TABLE miskolciember AS SELECT * FROM ember WHERE varos=’Miskolc’; ALTER TABLE miskolciember ADD ( primary key(id) ); Művelet-végrehajtás ellenőrzése: DESCRIBE miskolciember; SELECT * FROM miskolciember; 5. Hozzunk létre egy MISKOLCIAUTO táblát az autó táblával azonos szerkezettel A tábla feltöltését úgy végezzük el, hogy a miskolci emberek autóit vigyük fel. CREATE TABLE miskolciauto ( rsz char(6) primary key, tulaj references miskolciember, tipus

char(10), szin char(10), ar number(8) check (ar > 0) ); INSERT INTO miskolciauto ( SELECT * FROM auto WHERE tulaj IN ( SELECT id FROM miskolciember )); Művelet-végrehajtás ellenőrzése: SELECT * FROM miskolciauto; 6. Növeljük a piros autók árát 10%-al UPDATE auto SET ar = ar*1.1 WHERE szin=’piros’; Módosítás ellenőrzése: SELECT * FROM auto; 7. Töröljük a piros autókat, majd vonjuk vissza ezt a műveletet DELETE FROM auto WHERE szin=’piros’; Törlés ellenőrzése: SELECT * FROM auto; Törlés visszavonása, és a művelet ellenőrzése: ROLLBACK; SELECT * FROM auto; 8. Adjunk olvasási jogot az ember táblánkra mindenkinek, és ugyanerre a táblára beszúrási jogot a mellettünk ülő felhasználónak jog-továbbadási lehetőséggel. GRANT SELECT ON ember TO PUBLIC; GRANT INSERT ON ember TO szomszed WITH GRANT OPTION; Kiadott jogok lekérdezése (Oracle): SELECT * FROM USER TAB PRIVS MADE; Kapott jogok lekérdezése (Oracle); SELECT * FROM USER TAB

PRIVS RECD; 9. Kérdezzük le a szomszéd felhasználó ember táblájának tartalmát és vigyünk fel egy új rekordot. Ezután mindenki ellenőrizze a saját ember táblájában történt változást SELECT * FROM szomszed.ember; INSERT INTO szomszed.ember VALUES (’333333CC’, ’Szabo Janos’, ’Budapest’); COMMIT; SELECT * FROM ember; 10. A szomszéd felhasználó adja tovább a kapott beszúrási jogot a másik szomszédjának Ez a felhasználó is vigyen fel egy új rekordot az idegen ember táblába. Ezután mindenki ellenőrizze a saját ember táblájában történt változást. SELECT * FROM masodikszomszed.ember; INSERT INTO masodikszomszed.ember VALUES (’444444DD’, ’Toth Bela’, null); COMMIT; SELECT * FROM ember; 11. Vonjuk vissza a kiadott jogokat Mindenki csak az általa kiadott jogokat tudja visszavonni, a továbbadott jogok automatikusan visszavonásra kerülnek. Most próbáljuk meg lekérdezni a szomszéd felhasználó ember táblájának adatait.

REVOKE SELECT ON ember FROM PUBLIC; REVOKE INSERT ON ember FROM szomszed; SELECT * FROM szomszed.ember; 12. Töröljük a táblákat A táblák törlésének sorrendje a hivatkozások miatt kötött! DROP TABLE miskolciauto; DROP TABLE auto; DROP TABLE miskolciember; DROP TABLE ember;