Documente Academic
Documente Profesional
Documente Cultură
Baza de date contine informatii despre instructori, dar si despre membrii, despre clasele sustinute, abonamente si Sali. Este foarte utila atat angajatilor BE, dar si membrilor care pot gasi informatiile foarte rapid. Obiectivele bazei de date sunt : Sa creeze o baza de date capabila sa inregistreze un flux mediu de informatii si sa gestioneze aceste informatii in timp util; Sa tina o evidenta completa a clubului BE. Baza de date este formata din 5 tabele alcatuite astfel: Instructori: id_instructor, Nume, Prenume, Calificare, Data angajare; Membrii: Id_membru, Nume, Prenume, cod abonament si durata lui; Abonament: cod abonament si durata lui, tipul si durata; Clase: id_instructor,id_sala, id_clasa, tip, dificultate, cod abonament si durata lui; Sali: id_sala, nume.
Create table Instructori(id_instructor number(3) constraint instructor_pk primary key, nume varchar2(30), prenume varchar2(30), calificare varchar2(30), data_angajare date);
Create table Clase(id_clasa number(3), tip varchar2(30), dificultate varchar2(30), id_instructor number(2) constraint instructor_fk references Instructori(id_instructor));
Create table Abonament(cod_abonament number(5), tip varchar2(30), durata number(2) not null, pret number(5));
Create table Membrii(id_membru number(3) constraint membru_pk primary key, nume varchar2(30), prenume varchar2(30), cod_abonament number(5), durata number(2));
Create table Sala(id_sala number(2) constraint sala_pk primary key, nume varchar2(30));
Alter table Membrii Add constraint ab_fkey Foreign Key(cod_abonament, durata) references Abonament(cod_abonament, durata);
Alter table Clase Add constraint sala_fk Foreign Key(id_sala) references Sala(id_sala);
Alter table Clase Add constraint codab_fk Foreign Key(cod_abonament, durata) references Abonament(cod_abonament, durata);
Alter table Sala Add Constraint sala_ck check (nume IS NOT NULL);
Comenzi DLL: Insert, Select, Update, Delete Insert into Instructori values(100, 'Valentin', 'Mavrodineanu', 'Personal Trainer', TO_DATE('15.10.2011','DD.MM.YYYY')); Insert into Instructori values(101, 'Sorin', 'Geana ', 'Personal Trainer', TO_DATE('12.04.2009','DD.MM.YYYY')); Insert into Instructori values(102, 'Denisa', 'Ganea ', NULL , TO_DATE('01.02.2012','DD.MM.YYYY')); Insert into Instructori values(103, 'Alexandru ', 'Bors', NULL, TO_DATE('15.04.2012','DD.MM.YYYY')); Insert into Instructori values(104, 'Alexandra ', 'Ghezea', NULL, TO_DATE('20.11.2011','DD.MM.YYYY')); Insert into Instructori values(105, 'Mihai', ' Visan', 'Personal Trainer', TO_DATE('05.06.2009','DD.MM.YYYY'));
Insert into Instructori values(106, 'Ciprian', 'Polexe ', NULL, TO_DATE('15.08.2010','DD.MM.YYYY')); Insert into Instructori values(107, 'Andreea ', 'Preda', NULL, TO_DATE('11.01.2013','DD.MM.YYYY')); Insert into Instructori values(108, 'Gabriel ', 'Niculescu', NULL, TO_DATE('23.05.2011','DD.MM.YYYY')); Insert into Instructori values(109, 'Diana', 'Dumitrescu', 'Personal Trainer', TO_DATE('17.09.2009','DD.MM.YYYY'));
Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert
into into into into into into into into into into into into into into into into into into into into
Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament Abonament
values(1000, values(1000, values(1000, values(1000, values(2000, values(2000, values(2000, values(2000, values(3000, values(3000, values(3000, values(3000, values(4000, values(4000, values(5000, values(5000, values(6000, values(6000, values(6000, values(6000,
'Aerobic Full', 12, 1600); 'Aerobic Full', 6, 900); 'Aerobic Full', 3, 550); 'Aerobic Full', 1, 250); 'Fitness Full', 12, 1520); 'Fitness Full', 6, 820); 'Fitness Full', 3, 500); 'Fitness Full', 1, 220); 'Aero-Fit Full', 12, 1680); 'Aero-Fit Full', 6, 980); 'Aero-Fit Full', 3, 580); 'Aero-Fit Full', 1, 220); 'Aero-Fit Daytime', 3, 285); 'Aero-Fit Daytime', 1, 130); 'Piscina', 3, 640); 'Piscina', 1, 250); 'All Inclusive', 12, 2600); 'All Inclusive', 6, 1500); 'All Inclusive', 3, 900); 'All Inclusive', 1, 400);
values('10','Kangoo Jumps','Ridicata',100,03,1000,NULL); values('10','Kangoo Jumps','Ridicata',109,03,1000,NULL); values('10','Kangoo Jumps','Ridicata',107,04,1000,NULL); values('11','Zumba Fitness','Scazuta',102,04,1000,NULL); values('12','Tae Bo','Medie',105,06,1000,NULL);
Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert
into into into into into into into into into into into into into into into into into into into into into
Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase Clase
values('12','Tae Bo','Medie',101,03,1000,NULL); values('13','Pilates','Scazuta',103,04,1000,NULL); values('14','Cycling','Ridicata',100,05,2000,NULL); values('14','Cycling','Ridicata',105,05,2000,NULL); values('15','Stretching','Scazuta',103,06,1000,NULL); values('16','Strength Cardio','Ridicata',106,04,1000,NULL); values('17','Aerial Yoga','Scazuta',102,03,1000,NULL); values('18','Rebound AAS','Ridicata',104,03,1000,NULL); values('19','Fitball','Scazuta',104,04,1000,NULL); values('20','TRX','Ridicata',101,06,1000,NULL); values('21','Aerobic','Medie',107,03,1000,NULL); values('21','Aerobic','Medie',109,04,1000,NULL); values('22','Step Tone','Medie',105,04,1000,NULL); values('23','Passion Dance','Scazuta',103,03,1000,NULL); values('24','Interval Training','Medie',105,03,1000,NULL); values('24','Interval Training','Medie',100,04,1000,NULL); values('24','Interval Training','Medie',101,04,1000,NULL); values('25','XTreme Fitness','Ridicata',101,01,2000,NULL); values('20','Aqua Gym','Medie',109,01,5000,NULL); values('20','Inot','Ridicata',108,01,5000,NULL); values('20','Fitness','Medie',106,01,2000,NULL);
Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert
into into into into into into into into into into into into into into into into into into
Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii Membrii
values(135,'Neagu','Dima',2000,12); values(247,'Stan','Alexandru',5000,1); values(682,'Soare','Irina',1000,3); values(348,'Radu','Antonia',4000,1); values(728,'Grigore','Adrian',6000,3); values(953,'Oprea','Alin',5000,1); values(638,'Mitran','Iulia',2000,6); values(482,'Lungu','Raluca',3000,12); values(137,'Ganea','Carmen',1000,6); values(238,'Bica','Ioana',3000,6); values(653,'Sitca','Ion',1000,3); values(353,'Rodoiu','Andreea',4000,3); values(729,'Goicu','Anton',6000,1); values(926,'Olariu','Marin',5000,3); values(663,'Mutu','Iuliana',2000,1); values(403,'Lintoiu','Roxana',3000,6); values(174,'Gica','Cristian',1000,12); values(282,'Butnaru','Camelia',3000,12);
->>
Sa se mareasca pretul abonamentelor de tip Aerobic, Fitness si Aero-Fit cu durata de 6 luni cu 10%.
->>
Sa se modifice abonamentele Aero-Fit Daytime in Full ale membrilor cu id-ul intre 100 si 400.
Update Membrii Set cod_abonament=3000 Where cod_abonament=4000 and id_membru between 100 and 400;
->>
->>
select nume , prenume , tip as abonament from Membrii m, Abonament a where m.cod_abonament=a.cod_abonament;
Select max(pret) as "Pret maxim", min(pret) as "Pret minim", round(avg(pret),2) as "Pret mediu" From abonament;
Sa se afiseze toate clasele lui Mihai Visan si ale lui Sorin Geana.
select id_clasa, tip from clase where id_instructor=105 UNION select id_clasa, tip from clase where id_instructor=101;
Sa se afiseze tipul clasei si sala in care se sustine, daca sala este Dans sau Aerobic, altfel de afiseaza mesajul Alta sala.
select tip, case when id_sala=03 then 'dans' when id_sala=04 then 'aerobic' else 'alta sala' end "Sala" from clase;
select * from instructori where lower(calificare)='personal trainer' Intersect select * from instructori where data_angajare<to_date('01.01.2010','dd.mm.yyyy');
Sa se afiseze instructorii cu calificarea Personal Trainer in afara celor angajati inainte de 01.01.2011.
select * from instructori where lower(calificare)='personal trainer' minus select * from instructori where data_angajare<to_date('01.01.2010','dd.mm.yyyy');
select * from clase connect by nocycle id_clasa= prior id_instructor order by id_instructor;
select id_clasa, tip, id_instructor, level from clase connect by nocycle id_clasa= prior id_instructor start with id_instructor='105';
Tabele virtuale, indeci, sinonime,secvene Sa se creeze o secventa pentru asigurarea unicitatii cheii primare din tabela Sala.
Sa se creeze si afiseze datele unui sinonim pentru table Sala. create synonym denumire_sala for sala; select * from denumire_sala;
Sa se creeze si afiseze datele din tabele virtuala cu instructorii necalificati ca personal trainer. create view Necalificati as select * from instructori where calificare is NULL; select * from Necalificati;
delete from Necalificati where data_angajare between to_date('01.01.2011','dd.mm.yyyy') and to_date('01.01.2012','dd.mm.yyyy'); select * from Necalificati;