3. feladat * Hozzunk letre egy tablahoz ket kulonbozo indexet, * az egyik legalabb ket oszlopot tartalmazzon. $ create index index1 on tipusok(numoszlop1, numoszlop2, numoszlop3); $ create index index2 on tipusok(datum, fixhossz); * Allapitsuk meg, hogy egy tablahoz milyen indexek vannak letrehozva. * (index neve, indexbeli oszlopok es azok sorrendje, * index fizikai tarolasanak parameterei) $ select index_name, include_column, num_rows, tablespace_name, clustering_factor, leaf_blocks, partitioned from dba_indexes where table_name='TIPUSOK' and owner='SZAMOSP'; eredmeny: INDEX_NAME INCLUDE_COLUMN NUM_ROWS TABLESPACE_NAME CLUSTERING_FACTOR LEAF_BLOCKS PAR ------------------------------------------------- INDEX1 USERS NO INDEX2 USERS NO SYS_IL0000113534C00008$ USERS NO * Adjuk meg az adatbazis legnagyobb rollback szegmensenek nevet, * meretet es azt hogy hany extensbol all. $ select segment_name, extents, blocks from dba_segments where segment_type='ROLLBACK' order by blocks; eredmeny: SEGMENT_NAME EXTENTS BLOCKS --------------------------- R03 469 30485 * Hozzunk letre egy DOLGOZO(dazon, nev, beosztas, * fonoke, fizetes, oazon ... stb.) * es egy OSZTALY(oazon, nev, telephely ... stb.) nevu tablat. * A ket tablanak az osztaly azonositoja lesz a kozos oszlopa. * A ket tablat egy CLUSTEREN hozzuk letre. * (Elobb persze letre kell hozni a clustert is.) $ create cluster osztalydolgozocluster(osztaly_azon number(2)); $ create table dolgozo(dazon integer not null, beosztas integer, nev varchar2(30), fizetes smallint, oazon number(2)); $ create table osztaly(oazon number(2), nev varchar(20), telephely varchar(20)); * Hozzunk letre egy szekvenciat, * amelyik az osztaly azonositokat fogja generalni * a szamunkra. Minden osztaly azonosito a 10-nek tobbszorose legyen. $ create sequence azongeneral start with 10 increment by 10; * Vigyunk fel 2 uj osztalyt es osztalyonkent minimum 3 dolgozot a tablakba. * Az osztaly azonositokat a szekvencia segitsegevel * allitsuk elo es ezt tegyuk be a tablaba. Az oszatlyok felvitele: $ insert into osztaly values (10,'osztaly1','fovaros'); $ insert into osztaly values (20,'osztaly2','megyeszekhely'); Dolgozok felvitele felvitele: $ insert into dolgozo values (1,2,'elsonev',120,azongeneral.nextval); $ insert into dolgozo values (1,2,'masodiknev',120,azongeneral.nextval) $ insert into dolgozo values (1,2,'harmadiknev',82,20); $ insert into dolgozo values (1,2,'negyediknev',87,20); $ insert into dolgozo values (1,2,'otodiknev',95,30); $ insert into dolgozo values (1,2,'hatodiknev',102,20); * A felvitel utan modositsuk a 10-es osztaly azonositojat a kovetkezo * ervenyes (generalt) osztaly azonositora. * A 10-es osztaly dolgozoinak az oazon erteket is modositsuk az uj ertekre. $ update osztaly set oazon=azongeneral.nextval where oazon=10; * Hozzunk letre egy nezettablat, amelyik osztalyonkent * az osszfizetest es a dolgozok szamat tartalmazza. $ create view nezettabla as (select sum(dg.fizetes) "fizetes", count(dg.oazon) "oazon" from dolgozo dg, osztaly ot where dg.oazon=ot.oazon group by dg.oazon); Keressuk elo a megfelelo rendszertablabol a nezettablat letrehozo utasitas SQL "forras szoveget". $ select text from dba_views where owner='SZAMOSP' and view_name='NEZETTABLA'; Hozzunk letre egy szinonimat, amelyik a nezettablara mutat. $ create synonym szinonima for nezettabla; * * * * *