You are on page 1of 2

Obs: biletul incepe cu: Sa se defineasca...

Deci definim:
create table ANGAJATI (
id_angajat int not null,
fk_functie int not null,
nume varhcar(20) not null,
an_angajare int not null,
salar int not null);
create table FUNCTII (
id_functie int not null,
fk_departament int not null,
nume_f varchar(30) not null );
create table DEPARTAMENTE (
id_departament int not null,
denumire varchar (20) not null );
insert into ANGAJATI (id_angajat, fk_functie, nume, an_angajare, salar)
values
(1,5,'Ion',1990,2500),
(2,2,'Vasile',2000,2000),
... similar si ceilalti angajati cf enunt.
);
insert into FUNCTII (id_functie, fk_departament, nume_f)
values
(1,2,contabil),
(2,2,Administrator financiar),
...similar si celalte functii cf enunt.
);
insert into DEPRTAMENTE (id_departament,denumire)
values
(1,Aprovizionare),
(2,Contabilitate),
...similar si celelalte departamente cf enunt.
);
Subiect 1.
select * from angajati where an_angajare >=2000 and fk_functie IN (select id_functie from functii
where
fk_departament >=3);
Subiect 2.
update angajati
set salar = salar * 1.1 where fk_functie IN (5,6);
OBS: aici am presupus ca functiile de conducere sunt sef birou si contabil sef.

Subiect 3.
create function indexare (procent int) return int
begin
update angajati
set salar = salar + salar*procent/100 ;
return 1;
end
Subiectul 4.
create trigger alarma before insert or update of salar on ANGAJATI when salar > 5000
begin
PRINT Salariul depaseste valoarea 5000;
end
Subiectul 5.
begin
DECODE(id_departament,
1,Aprovizionare,2,Contabilitate,3,Administrativ,4,Financiar,5,Salarizare);
end

You might also like