You are on page 1of 4

--1

create table facultati(CODFAC varchar2(5) ,DENFAC varchar2(100));


alter table facultati add constraint codfac_pk primary key(CODFAC);
alter table facultati add constraint denfac_nn check( DENFAC is not null);

create table catedre(CODCAT varchar2(7) constraint pk_cat primary key,


DENCAT varchar2(50) constraint nn_denc not null,
CODFAC varchar2(5) constraint codfac_fk references facultati(CODFAC));

create table persoane(codp number(3) constraint pk_codp PRIMARY KEY,


nume varchar2(30),functia varchar2(5) constraint ck_fct check (functia in
('Prof','Conf','Lect','Asist','Prep')),dataang date,
codcat varchar2(7) constraint fk_codcat references catedre(codcat));

--2
rename persoane to angajati;

--3
alter table angajati add (salariu number(4));

--4
alter table angajati add constraint VerificaSalariu check( salariu >1000 and salariu<5000);

--5
alter table facultati modify denfac varchar2(70);

--6
alter table angajati disable constraint VerificaSalariu;

--7
insert into facultati
values('CSIE','Cibernetica Statistica si Informatica Economica');
insert into facultati
values('CIG','Contabilitate si Informatica de Gestiune');
insert into facultati
values('COM','Comert');

insert into catedre;


values('IE','Informatica economica','CSIE');
insert into catedre
values('CIB','Cibernetica economica','CSIE');
insert into catedre
values('EM','Economie matematica','CSIE');
insert into catedre
values('STAT','Statistica si previziune economica','CSIE');

insert into angajati


values(1,'Ionescu','Prof',TO_DATE('12-11-1994','DD-MM-YYYY'),'IE',1900);
insert into angajati
values(2,'Popescu','Prof',NULL,'CIB',2200);
insert into angajati
values(3,'Georgescu','Asist',TO_DATE('23-04-2002','DD-MM-YYYY'),'IE',1000);
insert into angajati
values(4,'Stanescu','Conf',TO_DATE('10-10-2001','DD-MM-YYYY'),'EM',1400);
insert into angajati
values(5,'Tudor','Lect',NULL,'IE',1500);
insert into angajati
values(6,'Zaharia','Prep',TO_DATE('04-02-2005','DD-MM-YYYY'),'EM',900);

--8
update angajati set nume='Marinescu' where codp=3;

--9
update angajati set functia='Lect' where codp=4;

--10
update angajati set salariu=salariu+0.1*salariu where salariu<1400;

--11
update angajati set codcat=(select codcat from angajati where codp=2) where codp=4;

--12
select* from facultati;

--13

select codcat, dencat


from catedre c
;

--14
select nume,functia 
from angajati
order by nume desc;

--15
select* from angajati
where upper(nume) like 'S%';

--16
select* from angajati 
where rownum<4 and dataang is not null
order by dataang;
--17
select nume, salariu, functia ,
case functia
when 'Prep' then salariu+200
when 'Asist' then salariu+200
when 'Lect' then salariu+170
else salariu+150
end
as salariu_majorat
from angajati;

--18
select nume from angajati
where functia in('Asist','Lect');

--19
select max(salariu),min(salariu),avg(salariu)
from angajati
where extract(year from dataang)>2000;

--20
create table Departamente as(select* from Catedre where 1=2);

--21
select count(codp) as"Numar persoane"
from angajati
where codcat='IE';

--22
select* from angajati
where functia in('Prof','Conf') and salariu>2000;

--23
select c.dencat, avg(a.salariu)
from catedre c,angajati a
where c.codcat=a.codcat
group by c.dencat;

--24
select functia, avg(salariu) as "Salariul mediu"
from angajati 
group by functia
having avg(salariu)>1200;

--25
select * from angajati
where codcat=(select codcat from angajati where nume='Ionescu');

--26
select * from angajati 
where salariu>(select avg(salariu) from angajati);

--27
update angajati
set salariu=salariu+100 where codcat='IE';

--28
select c.dencat, count(a.codp)as "Numar persoane"
from angajati a,catedre c
where a.codcat=c.codcat and c.dencat!='Informatica economica'
group by c.dencat
having count(codp)>1;

--29
select functia,count(codp) as "Numar persoane"
from angajati
group by functia;

--30
delete from angajati
where codp=2;

You might also like