Documente Academic
Documente Profesional
Documente Cultură
BAZE DE DATE
Repartitia Studentilor in Caminele A.S.E.-ului
pe anul universitar 2006-2007
si plata regiei pana la data de 15 februarie 2007
CERINTE PROIECT
VARIANTA 1
E. 5 exemple cu gestiunea altor obiecte ale bazei de date: vederi (se pot realiza view-uri
cu cerintele de la punctul D), partiţii, indecşi , sinonime, secvente.
VARIANTA 2
4. Proiectele vor fi aduse pe suport magnetic (CD) şi pe hartie şi vor contine schema bazei de
date precum şi scripturile cu cerinţele de mai sus. Va fi prezentat un singur CD/grupa
conţinând toate proiectele studenţilor.
REzolvare:
--A. Definirea schemei bazei de date – tabele (minim 4) cu legături şi alte restrictii de
integritate (CREATE TABLE), populate (INSERT).
drop table plata_regie cascade constraints;
drop table repartitie_stud cascade constraints;
drop table camin_stud cascade constraints;
drop table cereri_stud cascade constraints;
drop table facultati cascade constraints;
--B2.restrictionati valorile pe care poate sa le ia data_n (nu mai mult de 12 avand in vedere ca
desemneaza o luna!)
Alter table plata_regie add constraint check_luna check (luna_plat < 13);
--C1.triplati numarul de locuri alocate fiecarei facultati care are prima litera din denumire C ;
update facultati set nrloc_alocate=nrloc_alocate*3 where upper(nume_fac) like 'C%';
--C2.mutati toti studentii cu media cuprinsa intre 8,91 si 9,16 in caminele din Agronomie;
update repartitie_stud set ncamin='Agronomie' where cod_stud in (select cod_stud from
cereri_stud where medie between '8,9' and '9,15');
--C3. stergeti chitantele care au fost emise in luna pentru care se face plata;
delete from plata_regie where to_char(data_chit,'mm')=luna_plat;
--D.Interogari(select)
--D1.sa se afiseze facultatile care au studenti cu medii mai mici de 8,75, precum si numarul
acestora;
select f.nume_fac, count(*) from facultati f, cereri_stud c
where f.cod_fac=c.cod_fac and c.medie<'8,75' group by f.nume_fac order by count(*);
--D4.sa se afiseze facultatile care au elevi cazati in moxa precum si numarul acestora
select f.nume_fac, count(r.ncamin) from facultati f, cereri_stud c, repartitie_stud r where
f.cod_fac=c.cod_fac and c.cod_stud=r.cod_stud and upper(r.ncamin)='MOXA'
group by f.nume_fac;
--D5.sa se afiseze studentii care locuiesc in belvedere si sunt nascuti in anul 85’;
select c.nume_stud, r.ncamin from cereri_stud c, repartitie_stud r where
initcap(r.ncamin)='Belvedere'
intersect
select c.nume_stud, r.ncamin from cereri_stud c, repartitie_stud r where
to_char(c.datan,'yy')='85';
--D 8.se se afiseze codul cererii si numele studentilor care nu au primit cazare
select cod_cerere, nume_stud from cereri_stud where cod_stud not in
(select cod_stud from repartitie_stud );
-- D9.sa se afiseze administratorii caminelor pt care au fost platite chitante in luna decembrie:
select distinct cs.administrator admin from camin_stud cs, repartitie_stud r, plata_regie p
where p.cod_stud=r.cod_stud and r.ncamin=cs.ncamin and
p.luna_plat=12;
--D13.Sa se afiseze media cea mai mica pentru studentii care au primit camin
--D14.sa se afiseze numele caminului concatenat cu numele studentului pentru toti studentii
din anul 1 sau 4
select concat(r.ncamin,c.nume_stud) from cereri_stud c, repartitie_stud r where
r.cod_stud=c.cod_stud and c.an_studiu in ('1','4');
--E1. creati o tabela virtuala numai cu cererile studentilor facultatii cibernetica formata din
cod_cerere, numestudent, an_studiu, medie;
create view cereri_cibe as select cod_cerere, nume_stud, an_studiu, medie from cereri_stud
where cod_fac=1;