Sunteți pe pagina 1din 4

Baze de date – RECAPITULARE -

EXERCIŢII RECAPITULATIVE

1. Să se creeze tabelele Facultăţi, Catedre şi Persoane pe baza schemei de mai sus, ţinând
cont de următoarele:

FACULTĂŢI
Nume coloană CODFAC DENFAC
Tipul restricţiei Primary key Not null
Tip dată Varchar2 Varchar2
Lungime 5 100

CATEDRE
Nume coloană CODCAT DENCAT CODFAC
Tipul restricţiei Primary key Not null Foreign key - referă tabela
Facultăţi, coloana CODFAC
Tip dată Varchar2 Varchar2 Varchar2
Lungime 7 40 5

PERSOANE
Nume coloană CODP NUME FUNCŢIA DATAANG CODCAT
Tipul restricţiei Primary key Check Foreign key - referă
tabela Catedre,
coloana CODCAT
Tip dată Number Varchar2 Varchar2 Date Varchar2
Lungime 3 30 5 7

Atributul FUNCŢIA poate lua valorile: Prof (profesor), Conf (conferenţiar), Lect (lector),
Asist (asistent), Prep (preparator)

1
Baze de date – RECAPITULARE -

2. Să se redenumească tabela Persoane în Angajati.


3. Să se adauge în tabela Angajati coloana Salariu, având tipul Number(4).
4. Să se adauge în tabela Angajati o restricţie de integritate având numele VerificaSalariu
asupra câmpului Salariu, care să nu permită introducerea de valori mai mici decât 1000 si
mai mari decât 5000.
5. Modificaţi proprietăţile câmpului DenFac din tabela Facultati, astfel încât lungimea
acestuia să fie de 60
6. Dezactivaţi restricţia de integritate VerificaSalariu existentă în tabela Angajati.
7. Să se adauge în tabele următoarele informaţii:

FACULTĂŢI
CODFAC DENFAC
CSIE Cibernetica, Statistica si Informatica Economica
CIG Contabilitate si Informatica de Gestiune
COM Comert

CATEDRE
CODCAT DENCAT CODFAC
IE Informatica Economica CSIE
CIB Cibernetica Economica CSIE
EM Economie Matematica CSIE
STAT Statistica si Previziune Economica CSIE

ANGAJATI
CODP NUME FUNCŢIA DATAANG CODCAT SALARIU
1 Ionescu Prof 12-NOV-1994 IE 2200
2 Popescu Prof CIB 2000
3 Georgescu Asist 23-APR-2002 IE 1000
4 Stanescu Conf 10-OCT-2001 EM 1400
5 Tudor Lect IE 1500
6 Zaharia Prep 04-FEB-2005 EM 900

8. În tabela Angajati modificaţi în Marinescu numele angajatului cu Codp egal cu 3 (câmpul


Nume).
9. În tabela Angajati modificaţi în Lect funcţia angajatului cu Codp egal cu 4 (câmpul
Functia).

2
Baze de date – RECAPITULARE -

10. În tabela Angajati creşteţi cu 10% salariile angajaţilor care au în prezent salariul mai mic
decât 1400 (câmpul Salariu).
11. În tabela Angajati modificaţi codul catedrei (câmpul CodCat) angajatului cu Codp egal cu
4 astfel încât să fie acelasi cu codul catedrei unde este încadrat angajatul cu Codp egal cu
2, utilizând clauza SELECT.
12. Să se afişeze toate informaţiile despre Facultati.
13. Să se afişeze numele şi funcţia tuturor angajatilor, ordonaţi descrescător după nume.
14. Să se afişeze angajaţii al căror nume incepe cu litera S.
15. Să se afiseze numele asistenţilor şi lectorilor (funcţiile sunt codificate prin Asist, respectiv
Lect).
16. Să se creeze o tabelă virtuală având numele PersonalCatedre, care să conţină pentru
fiecare angajat de la catedrele cu codul IE şi CIB: numele, funcţia şi denumirea catedrei.
17. Să se afişeze salariile maxim, minim şi mediu pentru toate persoanele angajate după anul
2000.
18. Să se afişeze numărul de persoane de la catedra cu CodCat egal cu IE.
19. Să se afişeze salariul mediu pentru fiecare catedră. (gruparea se va face în funcţie de codul
catedrei)
20. Să se afişeze salariul mediu corespunzător fiecărei funcţii, numai în cazul în care acesta
depăşeşte 1200.
21. Să se afişeze informaţii despre persoanele angajate la aceeaşi catedră ca şi Ionescu.
22. Să se afişeze persoanele care au salariul mai mare decât salariul mediu.
23. Să se afişeze denumirea catedrei şi numărul de persoane de la fiecare catedră, cu excepţia
catedrei de Informatică Economică şi numai pentru acele catedre care au mai mult de o
persoană.
24. Să se afişeze pentru fiecare funcţie numărul de angajaţi.
25. Ştergeţi tuplul corespunzător codului Codp egal cu 2.

3
Baze de date – RECAPITULARE -

1. Să se creeze tabelele Facultăţi, Catedre şi Persoane pe baza schemei de mai sus, ţinând cont de
următoarele:

create table facultati


(
codfac varchar2(5),
denfac varchar2(100) not null,
constraint pk_fac primary key(codfac)
);

create table catedre


(
codcat varchar2(7),
dencat varchar2(30) not null,
codfac varchar2(5),
constraint pk_cat primary key(codcat),
constraint fk_fac foreign key(codfac) references facultati(codfac)
);

create table persoane


(
codp number(3),
nume varchar2(30),
functia varchar2(5),
dataang date,
codcat varchar2(7),
constraint pk_pers primary key(codp),
constraint fk_cat foreign key(codcat) references catedre(codcat),
constraint ck_functia check(functia in('Prof','Conf','Lect','Asist','Prep'))
);

2. Să se adauge în tabele următoarele informaţii:

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-nov-1994','dd-mon-yyyy'),'IE','2200');


insert into angajati values ('2','Popescu','Prof',null,'CIB','2000');
insert into angajati values ('3','Georgescu','Asist',to_date('23-apr-2002','dd-mon-yyyy'),'IE','1000');
insert into angajati values ('4','Stanescu','Conf',to_date('10-oct-2001','dd-mon-yyyy'),'EM','1400');
insert into angajati values ('5','Tudor','Lect',null,'IE','1500');
insert into angajati values ('6','Zaharia','Prep',to_date('04-feb-2005','dd-mon-yyyy'),'EM','900');

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