Atestat 2010. Subiecte baze de date

considera tabela ANGAJATI cu structura:

CNP, NUME, DATA_ANGAJARE, DATA_NASTERE, SALARIU.

a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

b. Sa se afiseze pe ecran toti angajatii cu o vechime mai mare de 10 ani;

c. Stergeti din baza de date toate persoanele cu numele dat de la tastatura;

d. Afisati pe ecran numele celor mai vechi angajati;

e. Modificati salariul persoanei cu numele Popescu marindu-l cu 10%;

f. Afisati numarul de angajari din fiecare an.

Rezolvare:

b. select * from angajati where ((sysdate-data_angajare)/3650) 10;

c. delete from angajati where nume=:x;

d. select nume from angajati where data_angajare=(select min(data_angajare) from angajati);

e. select salariu+10*salariu/100 from angajati where nume='Popescu';

f. select count(*) from angajati as „nr_ang", to char(data_a,'yyyy') from angajati group by

to_char(data_a, 'yyyy')

considera tabela ELEVI cu structura:

NUME_PREN , NOTA_RO, NOTA_MAT, NOTA_GI, REZULTAT, MEDIE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

câmpul Rezultat cu valoarea promovat daca elevul a promovat testul national

(note minimum 5 la cele 3 discipline) nepromovat în caz contrar;

elevii promovati calculati media generala la disciplina româna;

procentul de promovabilitate (nr elevi promovati / nr elevi înscrisi);

elevii care au obtinut cea mai mare medie;

pe ecran elevii grupati dupa rezultat (promovat/nepromovat), apoi alfabetic dupa

nume;

Rezolvare:

c. select avg(nota_ro) from elevi where rezultat='promovat';

d. select ((select count (*) from elevi where rezultat='promovat')/(select count (*) from elevi))

from dual

e. select num_pren, medie from elevi where medie=(select max(medie) from elevi);

f. select * from elevi order by rezultat desc, nume_pren.

considera tabela FILME cu structura:

NUME, GEN, BUGET, DATA_AP

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

pe ecran filmele gen "comedie" cu buget 10000;

toate filmele din tabela grupate pe genuri;

filmul care a avut cel mai mare buget;

din tabela filmele in aparute înainte de 1-ian-1990;

bugetul total al tuturor filmelor gen "aventura".

Rezolvare:

b. select nume from filme where gen='comedie' and buget10000;

c. select nume, gen, buget, data_ap from filme order by gen;

d. select nume from filme where buget=(select max(buget) from filme);

e. delete from filme where data_ap'1-01-1991';

f. select sum(buget) from filme where gen='comedie';

considera tabela ELEVI cu structura:

NUME, CLASA, MEDIE, ABS_NEM

g.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare

h.

Afisati elevul (elevii) cu media cea mai mare din clasa 12A;

i.

Afisati pe ecran în ordine alfabetica elevii cu peste 20 absente nemotivate;

j.

Aflati suma totala a absentelor nemotivate pe fiecare clasa;

k.

Stergeti elevii cu peste 40 absente nemotivate;

l. Elevul "Popescu Gigel" se muta din clasa 12A în clasa 12B. Faceti modificarile necesare.

Rezolvare:

nume from elevi where medie=(select max(medie) from elevi where clasa='12a') and

clasa='12a';

* from elevi where abs_nem20 order by nume;

clasa, sum(abs_nem) as „total_absente" from elevi group by clasa;

from elevi where abs_nem40;

elevi set clasa='12b' where nume='popescu gigel'.

5. Se considera tabela PROFESORI cu structura:

NUME, GRAD, DATA_NAST, CATEDRA, SALAR, DIRIG

a.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare

b.

Afisati profesorii cu gradul I;

c.

Aflati salariul mediu pe coala si numarul de profesori care au mai putin de salariul

mediu

d.

Afisati alfabetic profesorii care sunt diriginti.

e.

Stergeti din tabela profesorii care împlinesc 60 ani in anul calendaristic curent

f. Afisati numarul de profesori de la fiecare catedra.

Rezolvare:

b. select nume from profesori where grad=1;

c. select count(*) from profesori where salariu(select avg(salariu) from profesori);

d. select nume from profesori where dirig='da' order by nume;

e. delete from profesori where (sysdate-data_nast)/365=60;

f. select count (*), catedra from profesori group by catedra.

6.

Se considera tabela EXCURSII cu structura:

DESTI NATIE, DATA_PL, PRET, DURATA, TRANSPORT (avion, autocar, etc)

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare

excursiile din tabela cu destinatia "NISA" ordonate crescator dupa data

plecarii

destinatia (destinatiile) cea mai ieftina

excursiile din tabela grupate pe destinatii

pretul la excursiile cu avionul (pretul excursiei scade cu 25%)

din tabela excursiile care s-au desfasurat sau care sunt in curs de desfasurare

(au data plecarii anterioara datei curente)

Rezolvare:

b. select * from excursii where destinatie='nisa' order by data_pl;

c. select destinatie from excursii where pret=(select min(pret) from excursii);

d. select destinatie from excursii group by destinatie;

e. update excursii set pret=pret-25*pret/100 where transport='avion';

f. delete from excursii where data_pl=sysdate.

considera tabela CIOCOLATA cu structura:

SORTIMENT, PRET_BUC, FIRMA_PROD

a.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda

cerintelor urmatoare;

b.

Afisati sortimentele de ciocolata ce au pretul_bucata 20 Ron ordonata

alfabetic dupa firma producatoare;

c.

Aflati firma (firmele) ce produce cea mai ieftina ciocolata;

d.

Afisati pentru fiecare firma numarul de sortimente de ciocolata;

e.

Modificati pretul_bucata (scade cu 15%) la toate sortimentele firmei

"Primola";

f.

Stergeti din tabela toate sortimentele firmei "Poiana";

Rezolvare:

* from ciocolata where pret_buc20 order by firma_prod;

firma_prod from ciocolata where pret_buc=(select min(pret_buc) from

ciocolata);

count(sortiment) from ciocolata group by firma_prod;

ciocolata set pret_buc=pret_buc-15*pret_buc/100 where firma_prod

='primola';

from ciocolata where firma_prod='poiana'.

considera tabela LIBRARIE cu structura:

TITLU, AUTOR, PRET_BUC, EDITURA

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

toate cartile autorului "Mihai Eminescu" ordonate descrescator dupa pret;

costul total al tuturor cartilor de la editura "Donaris";

pentru fiecare autor numarul total al cartilor sale;

cartea (cartile) cea mai scumpa;

din tabela cartile cu pretul mai mare de 25 Ron si aparute la editura X (X de

la tastatura)

Rezolvare:

b. select * from librarie where autor='mihai eminescu' order by pret_buc desc;

c. select sum(pret_buc) from librarie where editura='donaris';

d. select autor, count(*) from librarie group by autor;

e. select * from librarie where pret_buc=(select max(pret_buc) from librarie);

f. delete from librarie where pret_buc20 and editura=:x;

considera tabela FARMACIE cu structura:

MEDICAMENT, DATA_EXP, PRET

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare.

medicamentele care mai au o luna pâna la expirare

pretul cu 5% la medicamentul aspirina;

medicamentul(medicamentele) cel mai ieftin;

pretul unui medicament dat de la tastatura;

din tabela medicamentele care au data de expirare astazi.

Rezolvare:

b. select * from farmacie where data_exp='11.03.2010';

c. update farmacie set pret=pret-5*pret/100 where medicament='aspirina';

d. select * from farmacie where pret=(select min(pret) from farmacie);

e. select pret from farmacie where medicament=:x;

f. delete from farmacie where data_exp='11.02.2010'.

considera

tabela CONCURS cu structura :

NUME, NOTA1, NOTA2, NOTA3, NOTA_FIN, DATA_NAST, JUDET

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

nota_fin (media aritmetica a celor 3 note) pentru fiecare candidat;

concurentii care au obtinut nota finala peste 7 in ordinea descrescatoare a

mediilor;

candidatul (candidatii) cu nota finala maxima;

mediile generale pe judete (media aritmetica a notelor finale pentru fiecare

judet);

concurentii care au media finala sub 5.

Rezolvare:

b. update concurs set nota_fin=(nota1+ nota2+ nota3)/3;

c. select nume, nota_fin, judet from concurs where nota_fin7 order by nota_fin desc;

d. select * from concurs where nota_fin=(select max(nota_fin) from concurs);

e. select judet, avg(nota_fin) from concurs group by judet;

f. delete from concurs where nota_fin5.

considera

tabela FIRME cu structura:

NUME, DATA_AP, ORAS, CAPITAL, NR_ANG

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

firmele care au cel putin 3 ani de la înfiintare ordonate alfabetic;

firmele din tabela grupate pe orase;

firma (firmele) cu cei mai multi angajati;

cu 10% capitalul social al firmei x preluata de la tastatura;

din tabela firmele care au capital social 1000 Ron.

Rezolvare:

b. select * from firme where (sysdate-data_ap)/365=3;

c. select nume, oras from firme group by oras;

d. select nume from firme where nr_ang=(select max(nr_ang) from firme);

e. update firme set capital= capital+10*capital/100 where nume=:x;

f. delete from firme where capital1000.

considera tabela CARTI cu structura:

COD_CARTE, DENUMIRE_CARTE, AUTOR, AN_APARITIE, GEN, PRET.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze cartile a caror pret nu depaseste 10 RON;

se diminueze cu 10% pretul cartilor al caror an de aparitie este introdus de la

tastatura;

se afiseze valoarea cartilor pentru fiecare autor a carui nume începe cu litera A;

se afiseze denumirea cartii si autorul pentru care pretul este maxim;

se afiseze cartea si autorul pe genuri literare.

Rezolvare:

b. select * from carti where pret10;

c. update carti set pret=pret-10*pret/100;

d. select * from carti where autor like 'a%';

e. select pret, autor from where pret=(select max(pret) from carti);

f. select gen from carti group by gen.

considera tabela TARI cu structura:

NUME, REGIUNE, SUPRAFATA, POPULATIE, PIB (produsul intern brut al unei

tari).

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze tarile a caror populatie este mai mare de 20 milioane;

se afiseze tarile a caror regiune este introdusa de la tastatura;

tarile în ordine descrescatoare a valorii produsului intern brut;

se afiseze tarile cu suprafata minima;

se afiseze numarul tarilor pe regiuni.

Rezolvare:

b. select * from tari where populatie20 milioane;

c. select * from tari where regiune=:x;

d. select * from tari order by pib desc;

e. select * from tari where suprafata=(select min(suprafata) from tari);

f. select regiune, count(regiune) from tari group by regiune.

considera tabela SECTIE cu structura:

COD_SECTIE,DENUMIRE, NR_ANGAJATI, PRODUCTIE, CIFRA_A(cifra de

afaceri), PRODUCTIVITATE.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze sectiile cu numarul de angajati mai mare de 1000;

se completeze câmpul productivitate dupa formula cifra de afaceri/numar de

angajati;

sectiile cu productivitatea cea mai mare;

se stearga datele din baza de date pentru o sectie a carui cod este introdus de la

tastatura;

se ordoneze crescator dupa productie.

Rezolvare:

b. select * from sectie where nr_ang1000;

c. update sectie set productivitate=cifra_a/nr_ang;

d. select * from sectie where productivitate=(select max(productivitate) from sectie);

e. delete from sectie where cod_sectie=:x;

f. select * from sectie order by productivitate desc.

considera tabela CLADIRI cu structura:

DENUMIRE, LOCALITATE, VAL_INV (valoarea investitiei), AN_CON (anul

construirii), INDICE, VAL_ACT (valoarea actualizata).

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze denumirea cladirilor a carei valoare actualizata este mai mica de 100.000

RON;

câmpul indice cu valoarea 1 pentru cladirile construite înainte de 1950 si cu

2 pentru cladirile construite dupa 1950;

numarul cladirilor construite în anul 1970;

câte cladiri au fost construite în fiecare localitate;

se afiseze valoarea investitiei si anul constructiei pentru o cladire a carei denumire

este introdusa de la tastatura.

Rezolvare:

b. select * from cladiri where val_act1000;

c. update cladiri set indice=2 where an_con=1950;

update cladiri set indice=1 where an_con1950;

d. select count(*) from cladiri where an_con=1970;

e. select loc, count(loc) from cladiri group by loc;

f. select val_inv, an_con from cladiri where loc=:x.

considera

tabela MATERIALE cu structura:

DEN_MAT, STOC_I (stoc ini ial), INTRARI , IESIRI, STOC_F (stoc final)

.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se completeze câmpul stoc final dupa formula: stoc initial+intrari-iesiri;

se afiseze materialele a caror stoc final este egal cu zero;

materialele în ordine crescatoare a stocurilor initiale;

materialele pentru care valoarea intrarii este cea mai mica.

din tabela materialele care au stocul final cuprins în intervalul a,b (a si b citite de

la tastatura);

Rezolvare:

b. update materiale set stoc_f=stoc_i+intrari-iesiri

c. select * from materiale where stoc_f=0;

d. select * from materiale order by stoc_f;

e. select * from materiale where intrari=(select min(intrari) from materiale)

f. delete from materiale where :astoc_f and stoc_f :b;

considera tabela SPITALE cu structura:

NUME_P, DIAGNOSTIC, MEDIC, ETAJ , SALON.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

alfabetica a pacientilor;

câti pacienti sunt internati având diagnosticul"GRIPA"

numarul de pacienti a fiecarui medic;

se afiseze care este salonul cu numar maxim de pacienti.

din tabela înregistrarea corespunzatoare unui pacient introdus de la tastatura.

Rezolvare:

b. select * from spitale order by nume_p;

c. select count(*), nume_p from spitale where diagnostic='gripa';

d. select medic, count(medic) as „nr pacienti" from spitale group by medic;

e. select salon, count(*) from spitale group by salon;

f. delete from spitale where nume_p=:x.

considera tabela SPORTIVI cu structura:

NUME, VARSTA, SEX, GREUTATE, ÎNALTIME, SPORT .

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze sportivii de la „haltere" a caror greutate este de 80 kg;

alfabetic sportivii ordonându-i dupa sporturile pe care le practica;

se afiseze câti sportivi practica "Fotbal";

se afiseze care este sportivul cu înaltimea cea mai mare care face handbal;

care este media de vârsta pentru baieti, respectiv pentru fete.

Rezolvare:

b. select * from sportivi where sport='haltere' and greutate=80;

c. select * from sportivi order by sport;

d. select count(*) from sportivi where sport='fotbal';

e. select nume from sportivi where inaltime=(select max(inaltime) from sportivi) and

sport='handbal';

f. select avg(varsta) from sportivi where sex='f';

select avg(varsta) from sportivi where sex='m';

considera tabela STATISTICA cu structura:

NUME, STUDII, OCUPATIA , DOMENIU, VENIT.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze câte persoane au venit peste 10 milioane;

se stearga din baza de date informatiile corespunzatoare studiilor introduse de la

tastatura;

care sunt persoanele cu venit maxim din domeniul educatiei;

se afiseze cât la suta reprezinta persoanele cu ocupatia "vânzator" din acest sondaj;

se determine venitul total pe domenii.

Rezolvare:

b. select count(*) from statistica where venit10;

c. delete from statistica where studii=:x;

d. select nume from statistica where venit=(select max(venit) from statistica where

domeniu ='educational') and domeniu='educational';

e. select (select count(*) from statistica where ocupatia='vanzator')/(select count(*) from

statistica) * 100 from dual.

f. select sum(venit), domeniu from statistica group by domeniu.

considera tabela ABONATI cu structura:

NUME, CNP, MIN_INCLUSE, MIN_UTILIZATE, VALOARE, ACHITAT,

RETEA.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze pentru fiecare abonat valoarea facturii pe care trebuie sa o achite

cunoscând ca minutele suplimentare costa cu 10% mai mult decât minutele incluse si ca tariful

unui minut inclus este de 0,25 lei;

abonatii care sunt restanti;

se afiseze abonatii cu valoarea facturata cea mai mare;

abonatul a carui CNP s-a introdus de la tastatura sa se indice daca a achitat;

se afiseze valoarea obtinuta din încasari pentru fiecare retea.

Rezolvare:

b. alter table abonati add factura number

update abonati set factura=0.25*min_incluse where (min_utilizate-min_incluse)=0;

update abonati set factura=0.25*min_incluse+0.275*(min_utilizate-min_incluse)

where (min_utilizate-min_incluse)0;

c. select * from abonati where achitat=0;

d. select nume from abonati where factura=(select max(factura) from abonati);

e. select achitat from abonati where cnp=:x;

f. select sum(factura), retea from abonati group by retea.

considera tabela STUDENTI cu structura:

NUME, CNP, AN, MEDIE, BURSA.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

se afiseze câti studenti primesc bursa din anul I;

studentii care au bursa de merit(media peste 9,50 inclusiv);

numarul studentilor bursieri din fiecare an;

care este valoarea maxima a bursei dupa marirea cu 20%

se stearga studentii care au pierdut bursa(media este sub 8).

Rezolvare:

b. select count(*) from studenti where bursa 0 and an=1;

c. select nume from studenti where medie=9.5;

d. select count(*), an, from studenti where bursa 0 group by an;

e. update studenti set bursa=bursa+20*bursa/100

select bursa from studenti where bursa=(select max(bursa) from studenti);

f. delete from studenti where medie=8.

considera tabela ELEVI cu structura:

CODELEV, NUME, PRENUME, CLASA, MEDIA, CODSEFCLASA

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze în ordinea alfabetica primii 3 elevi din clasa C (C citit de la tastatura);

c.Câti elevi al caror nume se termina cu litera 'U' sunt în tabela?

fiecare clasa din tabela sa se calculeze media pe clasa; rezultatele se vor afisa în

formatul "Media clasei … este …."; Coloana rezultata va avea aliasul „Medii";

se afiseze elevii cu cea mai mare medie. Se vor afisa primele trei linii (daca exista);

se afiseze elevii si sefii lor de clasa în formatul: "Seful de clasa al elevului ….. este …..";

considera tabela PARIURI cu structura:

CODPARIU, PERSOANA, CAL, SUMA, DATA

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze toate persoanele care au pariat în trimestrul 1. Informatiile se vor afisa în

formatul: "Persoana … a pariat în data de …. suma de …. pe calul …";

de la pariul cu codul X si-a triplat suma pariata. Actualizati tabela.

d.Câte persoane au pariat în luna curenta pe calul cu numele C? (C dat de la tastatura);

cu numele X s-a îmbolnavit. Sa se stearga toate pariurile din luna curenta pe acest cal;

se afiseze numele persoanei/persoanelor cu cea mai mare suma pariata la un pariu;

considera tabelele ECHIPE si MECIURI cu structurile:

ECHIPE (ID, NUME, ORAS)

MECIURI (ID, ID_ECHIPA1, ID_ECHIPA2, GOL1, GOL2, DATA)

se creeze tabelele si sa se introduca câte 6 articole care sa corespunda cerintelor urmatoare;

în ordine alfabetica toate echipele cu numele începând cu litera S; Prima litera din

numele echipei va fi litera mare, restul vor fi litere mici;

din data D (citita de la tastatura) au fost amânate cu 7 zile. Actualizati tabela;

o noua echipa cu id-ul 1001, numele "Speranta" care sa fie acelasi oras cu echipa

cu numele X (X citit de la tastatura);

din tabela meciurile disputate în zilele de joi;

toate meciurile în formatul:"NumeEchipa1 –NumeEchipa2: Gol1 – Gol2";

Rezolvare:

b. update echipe set nume=initcap(nume);

select nume from echipe where nume like ‚S%' order by nume;

c. update meciuri set data=data+7 where data=:d;

d. insert into echipe (id, nume, oras) value (1001, ‚speranta', (select oras from echipe where

nume=:x));

e. delete from meciuri where to_char(data, ‚day')='miercuri';

f. select as „nume echipa 1", (select from echipe p,meciuri f where

=_echipa2) as „nume echipa 1", 1, 2 from echipe p, meciuri f where

=_echipa1;

considera tabelele ANGAJATI si DEPARTAMENTE cu structurile:

ANGAJATI (ID, NUME, PRENUME, DATA_ANGAJARE, SALARIU, ID_DEP)

DEPARTAMENTE (ID, DENUMIRE)

se creeze tabelele si sa se introduca câte 6 articole care sa corespunda cerintelor urmatoare;

persoanelor angajate de cel putin 10 luni se mareste cu 10%. Actualizati tabela

ANGAJATI;

se adauge un nou angajat care sa lucreze în acelasi departament cu angajatul cu numele Y

(Y citi de la tastatura);

cu denumirea D (D citit de la tastatura) s-a desfiintat. Actualizati cele doua

tabele, stergând departamentul si angajatii care lucreaza în acest departament;

se afiseze toti angajatii din departamentul cu denumirea X (X citit de la tastatura);

Informatiile vor fi afisate în formatul "Angajatul ….. lucreaza în departamentul ….".

se afiseze salariul maxim pentru fiecare departament. Rezultatele vor fi afisate în formatul

"Salariul maxim din departamentul ….. este …..". Coloana rezultata va avea aliasul

SALARII.

Rezolvare:

b. UPDATE ANGAJATI1 SET SALARIU=(SALARIU +(10/100)*SALARIU) WHERE

((SYSDATE-DATA_A)310)

c. INSERT INTO ANGAJATI1(ID, NUME, PRENUME, DATA_A, ID_DEP, SALARIU)

VALUES ('5', 'MHH', 'WXX', '04-06-2008', (SELECT ID_DEP FROM ANGAJATI1 WHERE

NUME=:Y), '1111')

d. delete from angajati where id_dep=:x

delete from departamente where id=34;

e. select nume as "angajatul lucreaza la ", as "departamentul.." from angajati1 a,

departamente d where _dep=(select id from departamente where denumire=:x) and

_dep=;

f. select ('salariul maxim din departamentul' ||id_dep|| 'este' || max(salariu)) as salarii from

angajati group by id_dep, salariu

considera tabelele: TURISTI si EXCURSII cu structurile:

TURISTI (COD, NUME, SEX, COD_EXC)

EXCURSII (COD , DESTINATIE , DATA_INCEPUT, DATA_SFARSIT, PRET)

se creeze tabelele si sa se introduca câte 6 articole care sa corespunda cerintelor urmatoare;

se afiseze destinatiile în ordine alfabetica. Fiecare destinatie va fi afisata o singura data;

care vor avea loc la Predeal în lunile de iarna s-au ieftinit cu 100 lei. Actualizati

tabela EXCURSII;

din tabela turistul cu numele X (X citit de la tastatura);

e.Câti turisti au ales destinatia 'Vatra Dornei'?

turistii care au participat la excursii cu durata mai mare de 7 zile. Informatiile vor fi

afisate în formatul: „Turistul …. a participat la excursia ….în perioada …. - ….".

Rezolvare:

b. select * from excursii order by destinatie

c.

d. delete from turisti where nume=:x;

e. select , from turisti t, excursii26 e where =;

f.

considera tabelele NUMERE1 si NUMERE2 cu structurile:

NUMERE1 ( CIFRA )

NUMERE2 ( CIFRA )

se completeze fiecare din cele doua tabele cu cifrele de la 1 la 5;

se afiseze cifrele din a doua tabela folosind scrierea cu cifre romane;

se afiseze tabla înmultirii pâna la 5 în formatul "cifra x cifra = rezultat"; se vor afisa

primele 20 de linii;

se afiseze tabla înmultirii cu X (X6 cifra nenula citita de la tastatura);

se afiseze câtul si restul împar irii cifrei X la toate celelalte cifre în formatul "cifra / cifra =

.

(cat, rest)" X (X6 cifra nenula citita de la tastatura);

din prima tabela se vor inversa: 5,4,3,2,1. Actualizati tabela.

considera tabela PACHETE cu structura

EXPEDITOR, DESTINATAR, DATA_EXPEDIERE, CATEGORIA, GREUTATE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze in ordine alfabetica a destinatarului pachetele care nu au completat expeditorul;

se calculeze media aritmetica a greutatilor pachetelor din tabela;

completeaza cu NECUNOSCUT toti expeditorii nespecificati si cu data de astazi toate

datele de expediere necompletate;

se stearga toate pachetele expediate anul trecut care au greutatea mai mica decât X (citit

de la tastatura);

este destinatarul care a primit cele mai multe pachete?

Rezolvare:

b. select * from pachete where expeditor=' ' order by destinatar;

c. select avg(greutate) from pachete;

d. update pachete set expeditor='necunoscut' where expeditor='

';

update pachete set data_ex=nvl(data_ex, sysdate);

e. delete from pachete where data_ex'31-12-2008' and data_ex'01-01-2010' and

greutate:x;

f. select destinatar, count(*) from pachete group by destinatar having count(*)=(select

max(count(*) from pachete group by destinatar);

considera tabela PRODUSE cu structura:

ID, DENUMIRE, CATEGORIE, DATA_EXP, PRET, CANTITATE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze produsele care expira astazi; se vor afisa doar primele 5 linii;

este valoarea totala a produselor din tabela? Afisati în formatul "Valoarea totala

este….";

care expira mâine se ieftinesc cu 50%. Actualizati tabela;

se adauge un nou produs care sa fie în aceeasi categorie cu produsul cu id-ul egal cu 4.

se afiseze categoria / categoriile care contine cele mai multe produse;

Rezolvare:

b. select denumire, rownum from produse where data_exp='22-03-2010' and rownum=5;

c. select „valoarea totala este" sum(pret*cantitate) from produse;

d. update produse set pret=0.5* pret where data_exp='23-03-2010';

e. insert into produse (id, denumire, categorie, data_exp, cantitate) values (20, 'sapun', select

categorie from produse where id='4', ‚24-03-2010', 3, z)

f. select categorie, count(*) from produse group by categorie having count(*)=(select

max(count(*)) from produse group by categorie)

considera tabela FOTBALI STI cu structura:

NUME, ECHIPA, POST, NRMECIURI, GOLURIMARCATE

a.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

b.

Afisati toti jucatorii echipei Ceahlaul;

c.

Afisati jucatorii grupati pe echipe, iar în cadrul echipelor pe posturi

d.

Mijlocasul Ronaldo s-a transferat la echipa Cimentul;

e.

Stergeti din tabela un jucator cu numele citit de la tastatura;

f.

Afisati atacantul cu cel mai mare procent de reusita (numarul de goluri marcate/

numarul de meciuri jucate);

Rezolvare:

b. select * from fotbalisti where echipa='Ceahlaul';

c. select nume, echipa, post from fotbalisti order by echipa, post, nume;

d. update fotbalisti set echipa='Ceahlaul' where numr='Ronaldo';

e. delete from fotbalisti where nume=:x;

f. select * from fotbalisti where goluri=(select max (nrmeciuri/goluri) from fotbalisti);

considera tabela CONCURENTI cu structura :

COD, NUME, TARA, PUNCTAJ

a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

clasamentului final în ordine descrescatoare a punctajelor si la punctaje egale

alfabetic dupa nume;

-se codul unui concurent si un nou punctaj al acestuia actualizati informatiile din

tabela;

concurentilor cu punctaje maxime;

de concurenti din fiecare tara;

se afiseze tara /tarile cu cea mai mare medie a punctajelor;

Rezolvare:

b. select * from concurenti order by punctaj desc, nume;

c. update concurentii set punctaj='56' where cod='5';

d. select * from concurenti where punctaj=(select max(punctaj) from concurenti);

e. select count(nume) from concurenti group by tara;

f. select tara, avg(punctaj) from concurenti group by tara having avg(punctaj)(select

avg(punctaj) from concurenti);

considera tabela PACIENTI cu structura

COD, NUME, DIAGNOSTIC, ADRESA, NR_ZILE_ SPITALIZARE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

alfabetica a pacientilor;

din tabela înregistrarea corespunzatoare unui cod introdus de la tastatura;

pacientii cu un numar maxim de zile de spitalizare;

de pacienti pentru fiecare diagnostic;

un diagnostic dat mariti numarul de zile de spitalizare cu o valoare data de la tastatura.

Rezolvare:

b. select * from pacienti order by nume;

c. delete from pacienti where cod=:x;

d. select * from pacienti where nr_zile_spitalizare=(select max(nr_zile_spitalizare) from

pacienti);

e. select count(nume) from pacienti group by diagnostic;

f. update pacienti set nr_zile_spitalizare=nr_zile_spitalizare + :z where diagnostic=:v;

considera tabela ANGENTII cu structura

COD, DENUMIRE, LOCALITATE, NR_ANGAJATI

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

alfabetica a agentiilor;

-se codul unei agentii si un nou numar de angajati actualizati datele corespunzatoare

din tabela;

numarul angajatilor de la o agentie al carei cod se citeste de la tastatura

diminuându-l cu 10 %;

de agentii pe localitati;

se afiseze localitatile care au numar numar maxim de angajati;

Rezolvare:

b. select * from agentii order by denumire;

c. update agentii set nr_ang=:z where cod=:v;

d. update agentii set nr_ang=(nr_ang-(nr_ang*10)/100) where cod=:v;

e. select count(*) from agentii group by localitate;

f. select localitate from agentii where nr_ang=(select max(nr_ang) from agentii).

considera tabela SPECII cu structura

COD_SPECIE, NUME, ZONA, NR_EXEMPLARE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

alfabetica a speciilor;

din tabela un articol de cod introdus de la tastatura;

numarul total de specii pe zone;

lista alfabetica a zonelor existente în tabela ;

speciilor cu numar minim de exemplare.

Rezolvare:

b. select * from specii order by nume;

c. delete from specii where cod_specie=:x;

d. select count(*) from specii group by zona;

e. select * from specii order by zona;

f. select * from specii where nr_exemplare=(select min(nr_exemplare) from specii).

considera tabela BIBLIOTECA cu structura

COD, TITLU, AUTOR, NR_EXEMPLARE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze numarul total de exemplare din tabela;

alfabetica a titlurilor cu numar maxim de exemplare;

fiecare autor afisati numarul total de exemplare;

din tabela toate articolele unui autor introdus de la tastatura;

un cod introdus de la tastatura actualizati tabela marind numarul de exemplare cu 10.

Rezolvare:

b. select count(*) from biblioteca;

c. select * from biblioteca where nr_exemplare=(select max(nr_exemplare) from biblioteca)

order by titlu;

d. select count(nr_exemplare) from biblioteca group by autor;

e. delete from biblioteca where autor=:x;

f. update biblioteca set nr_exemplare=nr_exemplare+10 where cod=:x;

considera tabela CREDITE cu structura

COD, NUME, DATA, PERIOADA, SUMA.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

persoanelor pentru care perioada de creditare s-a încheiat;

persoanelor care au credite cu sume maxime;

suma totala a creditelor pe fiecare an;

un cod introdus de la tastatura mariti perioada de creditare cu 1 luna.

din tabela înregistrarea corespunzatoare unui cod citit de la tastatura.

Rezolvare:

b. select * from credite where data+perioadasysdate;

c. select nume from credite where suma=(select max(suma) from credite) order by nume;

d. select data, sum(nume) from credite group by data;

e. update credite set perioada=(perioada+30) where cod:x;

f. delete from credite where cod=:x;

considera tabela REVISTE cu structura

COD, NUME, DATA_LANSARE, PRET, NR_EXEMPLARE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

publicatiilor lansate în anul 2009;

de publicatii cu numar maxim de exemplare;

numarul total de publicatii pe an de aparitie;

publicatiilor alfabetic si pe an de aparitie;

un cod introdus de la tastatura actualizati tabela marind numarul de exemplare cu

100.

Rezolvare:

b. select * from reviste where(data_lansare='01-01-2009' and data_lansare='31-12-2009');

c. select count(*) from reviste where nr_exemplare=(select max(nr_exemplare) from reviste);

d. select count(*) to_char (data_lansare, 'yyyy') as „anul" from reviste group by

to_char( data_lansare, 'yyyy');

e. select * from reviste order by nume, to_char(data_lansare, 'yyyy');

f. update reviste set nr_exemplare=nr_exemplare+100 where cod=:x;

considera tabela ABONAMENTE cu structura

COD, LOC_PLECARE, LOC_SOSIRE, DATA_PLECARE, PRET

g.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

h.

lista curselor cu plecare din Bicaz;

i.

localitatea de plecare cu numar maxim de abonamente;

j.

numarul abonamentelor cu sosire în Roman;

k.

lista curselor sortate cronologic;

l.

pentru un cod introdus de la tastatura actualizati articolul corespunzator marind

pretul cu 5%.

Rezolvare:

b. select * from abonamente where loc_plecare='bicaz';

c. select max(count(loc_plecare)) from abonamente group by loc_plecare;

d. select loc_sosire, count(loc_sosire) from abonamente where loc_sosire='roman'

group by loc_sosire;

e. select * from abonamente order by data_plecare;

f. update abonamente set pret=pret +(0,05 * pret) where cod=:x;

considera tabela ATESTAT cu structura:

NUME, TEMA, COORDONATOR, AN, NOTA

m.

Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

n.

Afi a i pe ecran toate atestatele a caror tema contine cuvântul"grafuri";

..

o.

Afi a i temele de atestat din anul 2010, grupate dupa coordonator;

..

p.

Afi a i atestatele coordonate de profesorul X care au obtinut cea mai mare nota (X

..

se citeste de la tastatura);

q.

Afisati numarul de atestate coordonate de fiecare profesor;

r. Eliminati din tabela atestatele sustinute în anul 2005 care au obtinut nota sub 7;

Rezolvare:

b. select * from atestat where tema='grafuri';

c. select * from atestat where an='2010' group by coordonator;

d. select * from atestat where nota=(select max(nota) from atestat) and coordonator=:x;

e. select count(*) from atestat group by coordonator;

f. delete from atestat where an='2005' and nota='7';

considera tabela AGENDA cu structura:

ID_AGENDA, NUME, PRENUME, DATA_NASTERE, TELEFON, EMAIL, ADRESA,

NR_COPII.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze persoanele care au un singur copil si locuiesc în orasul X introdus de la

tastatura.

persoanelor care sunt nascute în luna noiembrie.

se afiseze lista persoanelor care locuiesc în judetul Neamt (prefix 0233)si nu au adresa

de email.

persoanele care au acelasi numar de copii cu persoana cu numele X (X citit de la

tastatura);

persoanelor din agenda pe orase si pentru acelasi oras alfabetic dupa nume.

Rezolvare:

b. select * from agenda where nr_copii='1' and adresa=:x;

c. select * from agenda where data_nastere=

d. select * from agenda where adresa='neamt' and email is NULL;

e. select * from agenda where nr_copii=(select nr_copii from agenda where nume=:x)

f. select * from agenda group by adresa,nume;

considera tabela PAPETARIE cu structura:

ID_PRODUS, NUME_PRODUS, PRET, NR_EXEMPLARE, FURNIZOR.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

este produsul care se gaseste în stoc în cantitate maxima.

furnizorilor de produse din Papetarie.

se stearga produsul / produsele cu pret minim;

din baza de date a produselor furnizorului introdus de la tastatura.

este numarul produselor achizitionate de la fiecare furnizor.

Rezolvare:

b. select * from papetarie where nr_exemplare=(select max(nr_exemplare) from papetarie);

c. select furnizor from papetarie;

d. delete from papetarie where pret=(select min(pret) from papetarie);

e. delete from papetarie where furnizor=:X;

f. select count(nume_produs) from papetarie group by furnizor;

considera tabela CLASE cu structura:

CNP, NUME, PRENUME, DATA_NASTERE, LOCALITATE, EMAIL, MEDIE.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze elevii care nu locuiesc într-un oras introdus de la tastatura;

sunt elevii care au ziua de nastere în luna curenta;

se afiseze numarul de elevi din fiecare localitate;

se afiseze elevii care au media mai mare decât media maxima a elevilor dintr-o localitate

data de la tastatura;

elevilor în ordinea descrescatoare a mediilor si la medii egale alphabetic

Rezolvare:

b. select * from clase where localitate:x;

c. select nume from clase where to_char(data_n, ‚month')='septembrie';

d. select count(*) from clase group by localitate;

e. select nume from clase where media(select max(medie) from clase where localitate=:x);

f. select * from clase order by medie desc, nume;

considera tabela IMOBILIARA cu structura:

ID_LOC, NR_CAMERE, SUPRAFATA, TIP, ETAJ, PRET.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze structura apartamentelor situate la etajul 1.

se afiseze care sunt tipurile de apartamente din tabela.

se afiseze apartamentele decomandate care au suprafata cuprinsa între doua valori

introduse de la tastatura.

se stearga din tabela articolele care au pretul minim si 2 camere.

se afiseze ofertele de apartamente în ordinea descrescatoare a preturilor.

Rezolvare:

b. select nr_camere, suprafata, tip, pret from imobiliara where etaj='1';

c. select * from imobiliara group by tip;

d. select * from imobiliara where suprafata:x and suprafata:z;

e. delete from imobiliara where pret=(select min(pret) from imobiliara) and nr_camere='2';

f. select * from imobiliara order by pret desc;

considera tabela FARMACIE cu structura:

ID_PRODUS, PRET, STOC, DATA_EXPIRARE, FURNIZOR.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

cantitatea existenta în stoc pentru un medicament introdus de la tastatura.

sunt produsele în cantitate maxima în stoc.

produselor pentru care termenul de valabilitate expira peste 2 luni.

de produse în stoc pe furnizori.

se afiseze produsele alfabetic si pentru acelasi produs crescator în functie de pret.

Rezolvare:

b. select stoc from farmacie where id_produs=:x;

c. select * from farmacie where stoc=(select max(stoc) from farmacie);

d. select * from farmacie where data_expirare '30-04-2010' and data_expirare'01-062010';

e. select sum(stoc), furnizori from farmacie group by furnizor;

f. select * from farmacie order by pret;

considera tabela CARTI cu structura:

AUTOR, TITLU, EDITURA, NR_EXEMPLARE, AN_ACHIZITIE.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

sunt editurile la care au fost publicate cartile achizitionate.

si titlul lucrarilor cu numar maxim de exemplare în tabela.

sunt numarul de titluri publicate de fiecare editura.

lucrarilor achizitionate între 1990 si 2009.

cartilor alfabetic pe autori si pentru acelasi autor descrescator dupa numarul de

exemplare.

Rezolvare:

b. select editura from carti group by editura;

c. select autor, titlu, from carti where nr_exemplare=(select max(nr_exemplare) from carti);

d. select count(editura), editura from carti group by editura;

e. select autor, titlu from carti where an='1990' and an='2009';

f. select titlu from carti order by autor desc, nr_exemplare;

considera tabela CLIENTI cu structura:

ID_CLIENT, NUME, PRENUME, TELEFON, EMAIL, ADRESA, ORAS.

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

sunt orasele în care locuiesc clientii din tabela.

este numarul clientilor dintr-un oras dat de la tastatura.

se afiseze numele si prenumele clientilor care au prefixul telefonic '0233'.

sunt clientii care nu au adresa de email în tabela.

clientilor pe orase si în acelasi oras alfabetic dupa nume.

Rezolvare:

b. select oras from clienti:

c. select count(nume) from clienti where oras=:x;

d. select nume, prenume from clienti where telefon like ‚0233%';

e. select * from clienti where email is NULL;

f. select * from clienti order by oras, nume;

considera tabela LOCATARI cu structura

NUME, PRENUME, APARTAMENT, RESTANTA, TAXA_LIFT

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

a i pe ecran locatarii cu restante de plata;

..

c.Înlocui i in baza de date datele locatarului de la apartamentul 11 cu datele noului proprietar;

.

i valoarea totala a restantelor de plata

.

de la apartamentul X are aceeasi restanta cu locatarul de la apartamentul Y.

Actualizati tabela; (X, Y citite de la tastatura)

a i locatarii primelor 5 apartamente care nu platesc taxa de lift;

..

Rezolvare:

b. select * from locatari where restanta is not null;

c. update locatari set nume='ion', prenume='ciucu' , restanta='7', taxa_lift='8' where

apartament='11';

d. select sum(restanta) from locatari

locatari set restanta=(select rest from locatari where n=:x) where nume=:y;

f. select * from locatari where taxa is null and rownum6;

considera tabela LABORATOR cu structura

NUMAR_STATIE, PROCESOR, FRECVENTA, MEMORIE, DVD, VALOARE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

a i pe ecran calculatoarele dotate cu procesor Intel cu frecventa mai mare de 1000 Mhz

..

(se va afi a numarul sta iei, modelul procesorului si frecventa)

..

c..terge i sta iile cu memoria RAM mai mica sau egala cu 128 MB.

.

sta ii sunt prevazute cu unitate de DVD?

.

i valoarea totala de inventar a sta iilor.

..

numarul statiilor pentru fiecare tip de procesor.

Rezolvare:

b. select numar_statie, procesor, frecventa from laborator where procesor='Intel' and

frecventa1000

c. delete from laborator where memorie='128';

d. select count(*) from laborator where dvd is not null;

e. select sum(valoare) from laborator ;

f. select count(*) from laborator group by procesor;

considera tabela MUNCITORI cu structura

NUME, COD_ATELIER, NR_PIESE

se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;

se afiseze numarul atelierelor din tabela;

se afiseze codul atelierului din tabela cu cei mai multi muncitori;

cu numele X (dat de la tastatura) se pensioneaza. Eliminati-l din tabela;

se afiseze numarul de piese produse de fiecare atelier;

se afiseze atelierul / atelierele cu cele mai multe piese produse;

Rezolvare:

b. select count(*) from muncitori

c. select cod_atelier,count(*) from muncitori group by cod_atelier having count(*)

=(select max(count(*)) from muncitori

d) delete from muncitori where nume=:X

e) select sum(nr_piese),cod_atelier from muncitori group by cod_atelier

f) select cod_atelier from muncitori group by cod_atelier having sum(nr_piese)=(select

max(sum(nr_piese)) from muncitori group by cod_atelier)

considera tabela TESTE cu structura:

DENUMIRE, DISCIPLINA, TIP, CLASA, PROFIL, DURATA

Tipul poate fi: clasic, grila, combinat.

. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor

urmatoare;

a Afi a i pe ecran denumirile testelor de la disciplina Informatica, de tip grila care

..

se pot da elevilor de clasa a IX-a, indiferent de profil;

b .terge i din baza de date testele cu durata mai mare de 60 minute.

.

c Afi a i testele de la profilul Matematica-informatica, grupate alfabetic pe

..

discipline si descrescator dupa durata testului.

d Modifica i durata testului "Componentele calculatorului" la 40 min si tipul

.

acestuia in test grila.

e Afisati disciplina / disciplinele cu cele mai multe teste.

b) select denumire from teste where disciplina='informatica' and tip='grila' and

clasa='a9a'

c) delete from teste where durata'80'

d) update teste set durata='40',tip='grila' where denumire='componentele calculatorului'

e) select disciplina,count(*) from teste group by disciplina having count(*)=(select max(count(*))

from teste group by disciplina)