Sunteți pe pagina 1din 1

1.

Se consideră tabela ELEVI cu structura: NUME, CLASA, MEDIE, ABS_NEM


a. Să se creeze tabela şi să se introducă 10 articole care să corespundă cerinţelor
următoare
create table ELEVI (NUME varchar2(30) , CLASA varchar2(6), MEDIE number(4,2),
ABS_NEM number(3));
insert into elevi values ('Andone Sebastian','12B', 6.46, 34);
insert into elevi values ('Corbu Constantin','12B', 9.46, 44);
insert into elevi values ('Poenaru Andra','12A', 8.79, 17);
insert into elevi values ('Ilitoi George','12A', 10, 26);
insert into elevi values ('Popescu Gigel','12A', 5.12, 27);
select * from elevi;
b. Afişaţi elevul (elevii) cu media cea mai mare din clasa 12A;
select nume from elevi where clasa='12A' and medie=(select max(medie) from elevi2
where clasa='12A');
c. Afişaţi pe ecran în ordine alfabetică elevii cu peste 20 absenţe nemotivate;
select nume, abs_nem from elevi where abs_nem>20 order by nume;
d. Aflaţi suma totala a absentelor nemotivate pe fiecare clasa;
select clasa, sum(ABS_NEM) from ELEVI group by CLASA;
e. Ştergeţi elevii cu peste 40 absenţe nemotivate;
delete from ELEVI where ABS_NEM>40;
select * from ELEVI;
f. Elevul “Popescu Gigel” se mută din clasa 12A în clasa 12B. Faceţi modificările
necesare.
update elevi set clasa='12B' where nume='Popescu Gigel' and clasa='12A';
2. Se consideră tabela FIRME cu structura:
NUME, DATA_AP, ORAS, CAPITAL, NR_ANG
a. Să se creeze tabela şi să se introducă 10 articole care să corespundă cerinţelor
următoare;
create table FIRME(NUME varchar2(30), DATA_AP date, ORAS varchar2(30),
CAPITAL number(12), NR_ANG number(5));
insert into firme values('Oracle', to_date('01-01-1977','dd-mm-yyyy'), 'Seattle',
10000000000, 20000);
insert into firme values('Microsoft', to_date('01-01-1986','dd-mm-yyyy'), 'Seattle',
12000000000, 10000);
insert into firme values('Petrom', to_date('01-01-1990','dd-mm-yyyy'), 'Bucuresti',
2000000000, 5000);
insert into firme values('Rompetrol', to_date('01-01-1995','dd-mm-yyyy'), 'Bucuresti',
1000000000, 2000);
insert into firme values('Eurosoft', to_date('01-01-2010','dd-mm-yyyy'), 'Bucuresti',
900, 5);
select * from firme;
b. Afişaţi firmele care au cel puţin 3 ani de la înfiinţare ordonate alfabetic;
select nume from firme where months_between(sysdate,data_ap)>=36 order by nume;
c. Afişaţi firmele din tabela grupate pe oraşe;
select nume,oras from firme order by oras;
d. Aflaţi firma (firmele) cu cei mai mulți angajaţi;
select nume from firme where nr_ang=(select max(nr_ang) from firme);
e. Măriţi cu 10% capitalul social al firmei x preluată de la tastatură;
update firme set capital=capital*1.1 where nume=:X;
f. Ştergeţi din tabela firmele care au capital social <1000 Ron.
delete from firme where capital<1000;

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