Sunteți pe pagina 1din 33

-proiect Baze de date-

Profesor coordonator: asistent universitar Vlad Diaconita


Student: Zoe Cristina Sisu

Tabelele firmei:

PRODUSE
Id_produs Denp
N(12)
C(20)

Pret
N(30)

SUCURSALA
Cod_s
N(2)

Nume
C(10)

Oras
C(12)

Adresa
C(30)

ABONATI
CNP
N(13)

Nume
C(10)

Prenum
e
C(20)

Telefon
C(10)

Email_a
C(30)

Adresa
C(30)

ANGAJATI
Id_ang
N(3)

Nume
C(10)

Prenume Cod_s
C(20)
N(3)

FACTURI
Nr_factur
a
N(12)

Dataf
D

CNP
N(13)

Id_ang
N(3)

Email
C(30)

Data_an
g
D

Salariu
N(3)

RAND_FACTURA
Nr_factur
a
N(12)

Id_produ
s
N(3)

Cantitate
N(3)

Oracle este un sistem de gestiune a bazelor de date complet relaional, extins, cu faciliti
din tehnologia orientat obiect (OO). Sistemul Oracle este realizat de firma Oracle Corporation
care a fost nfiinat n anul 1977 n SUA - California i acum este cel mai mare furnizor de
software de gestiunea datelor. Acesta este operaional pe toat gama de calculatoare (micro, mini,
mainframe) sub diverse sisteme de operare. Arhitectura sistemului este client/server, permnd
lucrul, cu obiecte i distribuit. Oracle se folosete pentru crearea aplicaiilor cu baze de date.
Limbajul SQL Structured Query Language este un limbaj standard de interogare a
bazelor de date. Implementat n majoritatea SGBD-urilor, dar nu numai. In ORACLE este
implementat nucleul SQL cu anumite particularitati.
Baza de date(BD) este un ansamblu de date organizat, coerent, structurat, n condiii de
redundan minim i controlat, accesibil mai multor utilizatori n timp util.
O entitate este un lucru, obiect, persoan sau eveniment care are semnificaie pentru
afacerea modelat, despre care trebuie s colectm i s memorm date. O entitate poate fi un
lucru real, tangibil precum o cldire, o persoan, poate fi o activitate precum o programare sau o
operaie, sau poate fi o noiune abstract.
Aadar, dup ce am identificat entitile trebuie s descriem aceste entiti n termeni reali,
adic s le stabilim atributele. Un atribut este orice detaliu care servete la identificarea,
clasificarea, cuantificarea, sau exprimarea strii unei instane a unei entiti. Atributele sunt
informaii specifice ce trebuie cunoscute i memorate.
De exemplu atributele entitii ANGAJATI sunt id-ul angajatului, numele ,prenumele,codul
sucursalei unde este angajati, adresa de email precum si data angajarii si salariul acestuia.
Atributele care definesc n mod unic instanele unei entiti se numesc identificator unic
(UID). UID-ul unei entiti poate fi compus dintr-un singur atribut, de exemplu codul numeric
personal poate fi un identificator unic pentru entitatea ABONATI. n alte situaii, identificatorul
unic este compus dintr-o combinaie de dou sau mai multe atribute. Atributele care fac parte din
identificatorul unic al unei entiti vor fi precedate de semnul diez #.
O relaie este o asociere, legtur, sau conexiune existent ntre entiti i care are o
semnificaie pentru afacerea modelat. Orice relaie este bidirecional, legnd dou entiti sau o
entitate cu ea nsi.
n Oracle exist restricii care se impun tabelelor. Acestea sunt structurale i comportamentale.
Restriciile structurale sunt:

Restricia de unicitate a cheii. ntr-o tabel nu trebuie s existe mai multe tupluri cu
aceeai valoare pentru ansamblul cheie;
Restricia externa. Intr-o tabel t1 care refer o tabel t2, valorile cheii externe trebuie
s figureze printre valorile cheii primare din t2 sau s ia valoarea null (neprecizat);
Restricia entitii. Intr-o tabel, atributele din cheia primar nu trebuie s ia valoarea
NULL.
Restriciile de comportament sunt cele care se definesc prin comportamentul datelor i in
cont de valorile din BDR:
Restricia de domeniu. Domeniul corespunztor unui atribut dintr-o tabel trebuie s se
ncadreze ntre anumite valori;
Restriciile de comportament fiind foarte generale se gestioneaz fie la momentul
descrierii datelor (de exemplu prin clauza CHECK), fie n afara modelului la momentul
execuiei.
Restriciile de integritate suportate de Oracle sunt:
NOT NULL nu permite valori NULL n coloanele unei tabele;
UNIQUE nu sunt permise valori duplicat n coloanele unei tabele;
PRIMARY KEY nu permite valori duplicate sau NULL n coloana sau coloanele
definite astfel;
FOREIGN KEY presupune ca fiecare valoare din coloana sau setul de coloane defini
astfel s aib o valoare corespondent identic n tabela de legtur, tabel n care
coloana corespondent este definit cu restricia UNIQUE sau PRIMARY KEY;
CHECK elimin valorile care nu satisfac anumite cerine (condiii) logice.
Termenul de chei (keys) este folosit pentru definirea ctorva categorii de constrngeri i
sunt: primary key, unique key, foreign key, referenced key.

INFORMATII DESPRE BAZA DE DATE COMPANIEI COSMOTE

Companiile din sectorul comunicaiilor au nevoie de soluii care s pun n valoare


dinamismul activitii sectorului de activitate i conexiunile la nivel global care se stabilesc aici
cu foarte mult uurin ntre cei care activeaz n acest sector. De aceea, am construit o baza de
date pentru o companie de dimensiune mica din acest domeniu. Firma efectueaza diferite servicii
clienilor si, de la simple vanzari de accesorii ale telefoanelor mobile, pn la deschidere de
abonamente.

Baza de date construita se adreseaza atat angajatorilor, cat si abonatilor sau clentilor, care
doresc sa obtina informatii cat mai detaliate despre un anumit produs.
Scopul bazei de date este sa se gestioneze produsele deja vandute si sa se aiba o legatura a
angajatilor care au facturat cu rezultatele obtinute.
In fiecare tabela din baza de date se tine evidenta acestor detalii, iar prin relatiile dintre ele se
poate usor depista traseul dorit.
Obiectivele bazei de date sunt :

Sa creeze o baza de date capabila sa inregistreze un flux mediu de informatii si sa


gestioneze aceste informatii in timp util;

Sa tina o evidenta completa a companiei Cosmote;

Sa minimizeze timpul alocat cautarii unor informatii despre vanzarile efectuate;

Baza de date tine evidenta unei firme de telefonie mobila. De aceea, trebuie inregistrate
produsele in vedere pentru efectuarii vanzarii lor PRODUSE , clientii care au cerut efectuarea
vanzarii, respectiv ABONATII , deoarece satisfacerea nevoilor lor este obiectivul firmei
noastre.
De asemenea, sunt incluse tabele care cuprind informatii despre vanzarile realizate
FACTURI. Si mai detaliat in RAND_FACTURA.
Cea mai importanta tabela din schema este tabela ANGAJATI, deoarece ei sunt
reprezentantii firmei, cei care efectueaza comenzile,vanzand produsele sau deschizand
abonamentele si ofera informatii despre companie. Reprezentand resursele umane ale
companiei COSMOTE, tabela ANGAJATI ocupa un loc central in baza de date.

Pentru o bun gestionare a bazei de date, am inclus anumite constrngeri pentru


validarea datelor :

Formatul datei dataf (FACTURI) trebuie sa fie de forma 12/MAY/09

Tabela FACTURI trebuie creata anterior tabelei RAND_FACTUR intrucat are


cheia primara formata cu ajutorul unui camp din aceasta.

Limbajul de descriere a datelor (LDD):Create , Alter, Drop


1.Sa se creeze tabelele pe baza machetelor de mai sus.
Creare tabela Produse
create table produse(id_produs number(12) primary key, denp varchar2(20),pret
number(5,2));
Creare tabela Sucursala
create table sucursala(cod_s number(2) primary key,nume varchar2(10), oras
varchar2(12), adresa varchar2(30));
Creare tabela Abonati
create table abonati(CNP number(12) primary key,nume varchar2(11),prenume
varchar(20),telefon varchar2(10),email_a varchar2(30), adresa varchar2(30) );
Creare tabela Angajati

create table angajati(id_ang number(3) primary key, nume varchar2(10), prenume


varchar2(20),cod_s number(3),email varchar2(30),data_ang date default
sysdate,salariu number(3),constraint fk1 foreign key (cod_s) references
sucursala(cod_s));
Creare tabela Facturi
create table facturi(nr_factura number(12) primary key , dataf date default sysdate, CNP
number(13), id_ang number(3),CONSTRAINT FK2 FOREIGN KEY (CNP)
REFERENCES abonati(CNP),CONSTRAINT FK3 FOREIGN KEY (id_ang)
REFERENCES angajati(id_ang));
Creare tabela Rand_factura
Create table rand_factura(nr_factura number(3),
id_produs number(3), cantitate number(3) ,
CONSTRAINT FK4 FOREIGN KEY (nr_factura) REFERENCES
facturi(nr_factura),CONSTRAINT FK5 FOREIGN KEY (id_produs) REFERENCES
produse(id_produs));

1. Sa se
sucursala
alter table
number(3);

introduca un camp nou la tabela


cu numele nr_angajati.
sucursala add nr_angajati

2. Sa se adauge o restrictie de tip not null pentru campul CNP


Alter table abonati add constraint not_null check(CNP is not null);

3. Sa se adauge o noua restrictie la campul cantitate astfel ca aceasta sa fie


mai mare decat zero in tabele rand_factura;
alter table rand_factura add constraint ck1 check(cantitate>0);

4. Sa se dezactiveze restrictia nou creata


alter table rand_factura modify constraint ck1 disable;

5. Sa se redenumeasca tabela sucursala in agentie apoi sa se revina la


numele initial
alter table sucursala rename to agentie;

rename agentie to sucursala;

6.

Sa se creeze tabela angajati_craiova cu aceiasi structura ca si tabela


sucursala.

Create table angajati_craiova as Select * From sucursala Where 2=3;

7. Sa se stearga tabela nou creata.


drop table angajati_craiova;

8. Sa se modifica lungimea campului adresa .


alter table sucursala modify adresa varchar2(31);

Limbajul de manipulare a datelor (LMD):Insert,Update,Delete.


1. .Sa se introducadate in tablele create.
a) Popularea tabelei Sucursala
Insert into sucursala values (1,'Ialomita','Slobozia','str Biruintei, nr86',160);
Insert into sucursala values (2,'sector 1','Bucuresti','bd Expozitiei, nr05',200);
Insert into sucursala values (3,'Cluj','Cluj Napoca','str Florilor, bl B, ap30',110);
Insert into sucursala values (4,'Sibiu','Sibiu','str Principala, nr68',60);
Insert into sucursala values (5,'Dambovita','Targoviste','bd Morilor de vant, nr13',160);

b) Popularea tabelei Produse


Insert into produse values (1,'Cartela Cosmote',160);

Insert into produse values (2,'telefon Nokia',780);


Insert into produse values (3,'Telefon Cosmote',160);
Insert into produse values (4,'telefon HTC300',980);
Insert into produse values (5,'Sim reincarcabila',240);
Insert into produse values (6,'Sim cu numar',60);
Insert into produse values (7,'Abonament internet',420);
Insert into produse values (8,'Husa Cosmote',30);

c) Popularea tabelei Abonati


Insert into abonati values
(2910521211182,'Sisu','Zoe','0762621817' ,'zoe.sisu@gmail.com','Amara,str Al I Cuza,
nr 45');
Insert into abonati values (1860807211180,'Dumitru','Robert','0766359222',
'tzopy_styl3@yahoo.com','Milano,str Violetelor, nr 17');
Insert into abonati values
(2560209311111,'Lolea','Diana','0765060278' ,'diana.didi@yahoo.com','Ghe. Doja,str
Rozelor, nr 22');

Insert into abonati values (2881212225252,'Vasile','Ana','0767620684',


'ana.anusa@gmail.com','Slobozia,str Murelor, bl B,ap4');
Insert into abonati values (1900677711825,'Marin','Emil','0767271814',
'marinik@gmail.com ','Iasi,str Verosimilitatii, nr5');
Insert into abonati values (2891021518182,'Bunea','Maria','0762621817',
'mary.bunea@gmail.com','Scanteia,str Teilor,bl A7,ap 9');
Insert into abonati values (1910521211182,'Neagu','Dima','0762621817','
dima88@yahoo.com' ,'Reviga,str Soarelui,nr 45');

d) Populare tabela Angajati


Insert into angajati values
(10,'Stan','Alexandru',1,'alex1stan@yahoo.com',TO_DATE( '28-SEP-02', 'DD-MONYYYY'),234);
Insert into angajati values (11,'Soare','Irina',4,'irina.s@gmail.com',TO_DATE('30-MAY09', 'DD-MON-YYYY'),104);
Insert into angajati values (12,'Radu','Antonia',1,'antonia2@yahoo.com',TO_DATE('02DEC-04', 'DD-MON-YYYY'),154);
Insert into angajati values (13,'Grigore','Adrian',1,'aditzu@yahoo.com',TO_DATE('15OCT-06', 'DD-MON-YYYY'),134);
Insert into angajati values (14,'Oprea','Alin',3,'alin@yahoo.com',TO_DATE('31-MAR07', 'DD-MON-YYYY'),133);
Insert into angajati values (15,'Mitran','Iulia',2,'mitrani@gmail.com',TO_DATE('18-JUN09', 'DD-MON-YYYY'),98);

Insert into angajati values (16,'Lungu','Raluca',5,'raluc2@yahoo.com',TO_DATE('12AUG-04', 'DD-MON-YYYY'),124);

e) Populare tabela Facturi


Insert into facturi values (20,TO_DATE('22-AUG-11', 'DD-MONYYYY'),2910521211182,11);
Insert into facturi values (25,TO_DATE('08-FEB-11', 'DD-MONYYYY'),1860807211180,14);
Insert into facturi values (21,TO_DATE('21-MAY-11', 'DD-MONYYYY'),2560209311111,10);
Insert into facturi values (24,TO_DATE('13-DEC-11', 'DD-MONYYYY'),2881212225252,11);
Insert into facturi values (26,TO_DATE('18-JUN-11', 'DD-MONYYYY'),2881212225252,13);
Insert into facturi values (23,TO_DATE('31-JUL-11', 'DD-MONYYYY'),2891021518182,16);
Insert into facturi values (22,TO_DATE('03-MAR-11', 'DD-MONYYYY'),1910521211182,11);

f) Populare tabela Rand_factura


Insert into rand_factura values (20,6,31);
Insert into rand_factura values (23,7,22);
Insert into rand_factura values (21,5,17);
Insert into rand_factura values (20,1,14);
Insert into rand_factura values (26,2,24);
Insert into rand_factura values (25,4,4);
Insert into rand_factura values (23,3,2);
Insert into rand_factura values (24,8,12);
Insert into rand_factura values (22,8,1);

2. Sa se modifice pretul cu pret-50 la produsele mai scumpe de 700u.m


update produse set pret=pret-50 where pret>700;

3. Angajatilor care lucreaza la sucursala 3 le fixam salariu 300 u. m.


update angajati set salariu=300 where cod_s=3;

4. Inserati in tabela Produse produsul cu id 9 si cu denumirea Accesorii GSM


insert into produse(id_produs, denp) values (9,'accesorii GSM');

5. Stergeti din tabela produse , produsele care au pretul null.


delete from produse where pret is null;

6. Stergeti angajatul cu email-ul antonia2@yahoo.com


delete from angajati where email='antonia2@yahoo.com';

7. Adaugati un nou angajat la sucursala 3


Insert into angajati values (12,'Radu','Antonia',3,'aurrrr@yahoo.com',TO_DATE('02DEC-04', 'DD-MON-YYYY'),154);

8. Angajatilor care au salariu cuprins intre 100 si 130 setati-l la 150.


update angajati set salariu=150 where salariu between 100and 130;

9. Salvati momentul in care va aflati apoi stergeti toate produsele cu


denumirea Cartela Cosmote sau Sim cu numar. La sfarsit reveniti la
momentul initial.

savepoint s;
delete from produse where upper(denp) in ('SIM CU NUMAR','CARTELA COSMOTE');
rollback to s;

10. Afisati existent abonatului cu numele Sisu si prenumele Zoe


select * from abonati where upper(nume)='SISU' and upper(prenume)='ZOE;

Regasirea datelor cu ajutorul comenzii Select


1. Afisati angajatii care nu au salariul 124 sau 134 um.
select * from angajati where salariu not in (124 , 234);

2. Afisati angajatii care au salariul 124 sau 134 um.


Select * from angajati where salariu=124 or salariu=234;

3. Afisati denumirea si pretul produsele care contin in denumirea lor


cuvantul cosmote
select denp, pret from produse where upper(denp) like '%COSMOTE%';

4. Afisati sucursalele Cosmote in ordine descrescatoare in functie de


numarul de angajati.
select * from sucursala by nr_angajati DESC;

5. Afisati toti angajatii de la sucursala Ialomita.


select nume,prenume from angajati where angajati.cod_s=( select cod_s from
sucursala where upper(nume)='IALOMITA');

6. Sa se afiseze denumirea produsului si suma incasata din vanzarea


acestuia, doar daca suma este mai mare de 5000
select denp,sum(rand_factura.cantitate*produse.pret) as "Valoare" from produse ,
rand_factura where produse.id_produs=rand_factura.id_produs having
sum(cantitate*pret)>5000;

7. Afisati valoarea media a vanzarilor


select avg(rand_factura.cantitate*produse.pret) as "valoare medie" from produse,
rand_factura;

8. Sa se afiseze pretul minim, pretulmaxim si pretul mediu al produselor din


magazine.
select max(pret)as "pret maxim", min(pret) as "pret minim" ,avg(pret) as "pret mediu"
from produse;

9. Sa se creeze tabela angajati_yahoo care va contine numele, prenumele


abonatilor care au mailul de tipul %yahoo%.
select nume , prenume from abonati where email_a like '%yahoo.com;

10. Sa se afiseze numele si e-mailul abonatilor al caror prenume incepe cu


literele Di.
select nume,email_a from abonati where substr(prenume,1,2)='Di';

11. Sa se afiseze facturiile ce constau intr-o cantitate mai mare de 20 bucati


inclusiv.

select * from facturi where 20<=(select sum(cantitate) from rand_factura where


rand_factura.nr_factura=facturi.nr_factura);

12. Afisati angajatii care au efectuat comenzi precum si cei care nu au


efectuat comenzi
select * from angajati,facturi where angajati.id_ang=facturi.id_ang(+) order by
facturi.nr_factura;

13. Afisati numele angajatii care au realizat vanzari in luna martie


select facturi.id_ang , angajati.nume from facturi, angajati where
facturi.id_ang=angajati.id_ang and extract(month from facturi.dataf)=3;

14. Afisati numele, prenumele precum si data angajarii fiecarui angajat, data
sa aiba formatul DD/MM/YY
SELECT nume, prenume, TO_CHAR(data_ang, 'DD/MM/YY')data_angajarii
FROM angajati ;

15. Creati tabela agenti cu aceiasi structura ca a tabelei angajati pe care


populati-o apoi si cu valori nule
create table agenti as select * from angajati where 2=3;
Insert into agenti values (10,'Stan','Alexandru',1,null,TO_DATE( '28-SEP-02',
'DD-MON-YYYY'),null);
Insert into agenti values
(11,'Soare',null,null,'irina.s@gmail.com',TO_DATE('30-MAY-09', 'DD-MONYYYY'),104);
Insert into agenti values
(30,'Titica','Corina',null,'corina@gmail.com',TO_DATE('21-MAY-09', 'DD-MONYYYY'),120);

16. Afisati tabela agenti, iar acolo unde prenumele este incomplet specificati
spunand prenume necompletat
select agenti.nume, nvl(prenume,'nume incomplet') from agenti;

17. Actualizati tabela agenti astfel incat agenti care au acelasi un cod de
angajat identificabil in tabela angajati sa li se seteze salariu 120,altfel sa
li se puna valoare null in toate campurile mai putin in tabela salariu unde
se va copia acelasi salariu ca in tabela sursa.
merge into agenti using angajati

on (agenti.id_ang=angajati.id_ang)
when matched then
update set agenti.salariu=120
when not matched THEN INSERT values(null,null,null,null,null,null,angajati.salariu);

18. Afisati numele , salariu si oferiti-le acestora un comision in functie de


salariu acestora, cand salariul<100 primesc comisionul tipul1, intre100 si
150 primesc comisionul 2, altfel comisionul cu tipul 3
select nume, prenume, salariu,
case when salariu<100 then 1
when salariu between 100 and 150 then 2
else 5 end comision
from angajati;

19. Afisati mesajul factura apartine angajatuilui i, daca i=11 sau 10 si un alt
mesaj in caz contrar
Select nr_factura, decode( id_ang,11,'Factura apartine angajatului cu id 11',10,'Factura
apartine angajatului cu id 10','Alti angajati')as descriere from facturi;

20. S se afieze denumirea sucursalei concatenat cu orasul i lungimea


atributului denumirea sucursalei , numai pentru orasele al cror nume
ncepe cu S
21.
SELECT nume, concat(nume,oras), length(nume) FROM sucursala WHERE
substr(oras,1,1)='S';

22. Afisati denumirea si pretul produselor care au pretul mai mare decat
media preturilor
select * from produse where pret>(select avg(pret) from produse);

23. Afisati numele, prenumele si data angajarii a fiecarui angajat


select nume, prenume, data_ang from angajati;

24. Afisati numele prenumele si data angajarii celui mai nou si celui mai
vechi dintre angajati
select nume, prenume, data_ang from angajati
where data_ang=(select max(data_ang) from angajati)
union
select nume, prenume, data_ang from angajati
where data_ang=(select min(data_ang) from angajati);

25. Afisati codurile angajatilor care nu au efectuat nicio comanda


select id_ang from angajati
minus
select id_ang from facturi;

26. Afisati toate produsele care contin in denumirea lor cuvantul SIM sau
cuvantul COSMOTE
select denp from produse where denp like '%Cosmote%'
UNION
select denp from produse where denp like '%Sim%'

27. Afisati produsele precum si valoarea totala a fiecarui produs vandut, dar
care nu au suma egala cu 9240 sau 18720 um.
select produse.denp, sum(rand_factura.cantitate*produse.pret) valoare
from produse , rand_factura
where rand_factura.id_produs=produse.id_produs
group by produse.denp
having sum(rand_factura.cantitate*produse.pret)>2000
intersect
select produse.denp, sum(rand_factura.cantitate*produse.pret) valoare
from produse, rand_factura
where rand_factura.id_produs=produse.id_produs
group by produse.denp
having sum(rand_factura.cantitate*produse.pret) not in (9240, 18720);

28. Afisati numele, prenumele precum si sucursala unde lucreaza fiecre


angajat, acestia fiind ordonati in ordine alfabetica in functie de orasul
unde lucreaza si de numele lor.
select angajati.nume, angajati.prenume , sucursala.oras
from angajati, sucursala
where sucursala.cod_s=angajati.cod_s
order by sucursala.oras, angajati.nume;

29. Sa se stearga sucursalele ale caror coduri nu apar in tabela angajati

delete from sucursala where cod_s not in (select cod_s from angajati);

30. Creati tabela angajati_slobozia cu aceiasi structura ca tabela angajati.


create table angajati_slobozia as select *from angajati where 'a'='b';

31. Populati tabela doar cu angajatii din slobozia din tabela initiala.
insert into angajati_slobozia select * from angajati where cod_s=(select cod_s from
sucursala where upper(oras)='SLOBOZIA');

32. Angajatilor din Slobozia setati-le salariul identic cu al angajatului cu


id_ang 11.
update angajati_slobozia set salariu=(select salariu from angajati where id_ang=11);

33. Stergeti toate inregistrarile din tabela angajati_slobozia care au codul


sucursalei egal cu codul sucursalei din Slobozia.
delete from angajati_slobozia where cod_s=(select cod_s from sucursala where
upper(oras)='SLOBOZIA');

34. Creati o tabela virtuala cu aceiasi structura ca tabela abonati, dar care sa
contina numai abonatii cu adrese de gmail.
CREATE VIEW abonati_cu_gmail
AS SELECT * FROM abonati
WHERE email_a like '%gmail.com';

35. Creati tabela virtuala ab_cu_yahoo care sa contina campurile nume,


prenume si email ala abonatilor cu adrese de yahoo.com din tabela
abonati.
CREATE VIEW ab_cu_yahoo
AS SELECT nume,prenume, email_a FROM abonati
WHERE email_a like '%yahoo.com';

36. Stergeti ultima tabela virtuala creata;


drop view ab_cu_gmail;

37. Creati tabela virtuala care sa contina numele si prenumele angajatilor


precum si orasul sucursalei de care apartin.
create view nume_suc_ang as
select angajati.nume, angajati.prenume, sucursala.oras from angajati,sucursala
where angajati.cod_s=sucursala.cod_s;

38. Sa se creeze un index la tabela angajati pe coloana nume,, care sa


faciliteze la accesul mai rapid la tabela cu numele angajatilor.
CREATE INDEX ANGAJATI_NUMEAG_IDX ON ANGAJATI(NUME);

39. Vizualizarea tuturor indecsilor userului logat


Select * from user_indexes;

40. Stergerea indexului ANGAJATI_NUMEAG_IDX.


drop index ANGAJATI_NUMEAG_IDX ;

41. Sa se adauge o secventa care aiba la inceput valoarea 100 iar valoarea
maxima 200.
create sequence sec
start with 100 increment by 10
maxvalue 200
nocycle;

42. Sa se adauge 2 produse folosind secventa create la ex anterior


Insert into produse values(sec.nextval,'Licurici telefon',120);
Insert into produse values(sec.nextval,'Memory stick',400);

43. Sa se modice valoarea maxima la secventa anterioara, apoi sa se stearga


adaugata la serviciul anterior.
Alter sequence sec maxvalue 250;
Drop sequence sec;

44. Sa se creeze un sinonim pt tabela sucursala.

create synonym sucursala_sym for sucursala;

Select * from sucursala_sym;

45. Sa se stearga sinonimul creat.


drop synonym sucursala_sym;

S-ar putea să vă placă și