Documente Academic
Documente Profesional
Documente Cultură
PRENUME_ELEV
VARCHAR2(25), BURSE
REPARTITIIBURSE
ID_BURSA VARCHAR2(6), ID_BURSA
ID_ELEV VARCHAR2(6), VARCHAR2(6)
ID_CLASA VARCHAR2(6),
ID_BURSA
TIP_BURSA CHAR(10),
ID_PROFIL VARCHAR2(6), VARCHAR2(6),
SUMA_BANI
TELEFON VARCHAR(10), LUNA CHAR(15) NUMBER(3);
OLIMPIC CHAR(2),
ADRESA VARCHAR2(50));
PROFESORI
ID_PROFESOR CLASE
VARCHAR2(6) PROFILURI
ID_CLASA VARCHAR2(6),
NUME_PROF ID_PROFIL
AN_STUDIU NUMBER(2,0), VARCHAR2(6)
VARCHAR2(25)
NUME_CLASA VARCHAR2(1), NUME_PROFIL
PRENUME_PROF
VARCHAR2(25), VARCHAR2(10)
ID_PROFIL VARCHAR2(6),
TELEFON VARCHAR2(10) ,
ADRESA VARCHAR2(50));
PREZENTARE PROIECT
Scopul bazei de date este sa creeze o statistica pentru elevi in functie de bursa pe
care o iau, sa tina evidenta burselor in functie de luna in care au fost date si sa faciliteze
contactul elevilor si a profesorilor.
Tabela Clase contine informatii precum id clasei, anul de studiu, numele clasei,
profilul de care apartine si dirigintele acesteia. Are ca si chei externe id_profil si diriginte(
id_profesor).
Tabela Burse contine informatii precum id_bursa, tipul bursei si suma de bani alocata
fiecarui tip de bursa.
CREAREA TABELELOR
Tabela Elevi
NUME_ELEV VARCHAR2(25),
PRENUME_ELEV VARCHAR2(25),
ID_BURSA VARCHAR2(6),
ID_CLASA VARCHAR2(6),
ID_PROFIL VARCHAR2(6),
TELEFON VARCHAR(10),
OLIMPIC CHAR(2),
ADRESA VARCHAR2(50));
Tabela Profesori
Create table Profesori
NUME_PROF VARCHAR2(25),
PRENUME_PROF VARCHAR2(25),
SALARIUL NUMBER(4),
TELEFON VARCHAR2(10) ,
ADRESA VARCHAR2(50));
Tabela Profiluri
Create table Profiluri
TIP_BURSA CHAR(10),
SUMA_BANI NUMBER(3));
Tabela Repartitiiburse
Create table Repartitiiburse
(ID_ELEV VARCHAR2(6),
ID_BURSA VARCHAR2(6),
( ID_CLASA VARCHAR2(6),
AN_STUDIU NUMBER(2,0),
NUME_CLASA VARCHAR2(1),
ID_PROFIL VARCHAR2(6),
DIRIGINTE VARCHAR2(6));
CONDITII DE INTEGRITATE
Tabela Repartitiiburse
ADAUGARE DE INREGISTRARI
Tabela Elevi
insert all
Tabela Profesori
insert all
update Burse
set SUMA_BANI=SUMA_BANI*1.5;
2. Sa se mareasca salariul profesorilor care predau matematica cu 30%.
update Profesori
set SALARIUL=SALARIUL*1.3
update Elevi
set ID_PROFIL='prf001'
update Elevi
set id_bursa='brs002'
where id_elev='elv001';
INREGISTRARI
s001’
Order by nume_elev;
Select count(id_profesor)
From profesori
Group by materie;
3.Sa se afiseze numele, prenumele si salariul profesorilor care au salariul mai mare de 1700.
4.Sa se atribuie un bonus de 50% profesorilor care predau matematica si un bonus de 40% celor
care predau lb. romana.
select nume_prof, materie, salariul
case
when upper(materie)='%MATEMATICA%'
then 0.5*salariul
when upper(materie)='%LB.ROMANA%'
then 0.4*salariui
else 0
end bonus
FROM Profesori;
5.select sum(suma_bani)
select nume_prof,prenume_prof
from profesori
where upper(prenume_prof) like '_A%'
10.Sa se afiseze numele clasei si anul de studiu pentru clasa a carei diriginte are id_prof =’prf004’.
select count(id_elev)
from elevi a, clase b
where a.id_clasa=b.id_clasa
group by an_studiu;
select count(id_elev)
from elevi
where id_profil='prf001'
16.Sa se afiseze id-ul clasei, numele clasei si anul de studiu pentru clasa la care profesorul cu id-ul
‘prf001’ este diriginte.
1. Creati o tabela virtuala cu aceiasi structura ca tabela Elevi, dar care sa contina numai acele inregistrari
care incep cu litera ’M’.
INDECSI
1. Sa se creeze un index la tabela Elevi pe coloanele nume , care sa faciliteze accesul mai rapid la
tabela cu numele si prenumele elevilor.
Create index elev_nume_ix
On Elevi (NUME_ELEV,PRENUME_ELEV) ;
2. Creati o secventa ‘salariul_salid_seg’ care sa inceapa de la 1400, sa fie incrementata cu 10, iar
valoarea maxima sa fie 2000.