1. Se 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’) 2. Se considera tabela ELEVI cu structura: NUME_PREN , NOTA_RO, NOTA_MAT, NOTA_GI, REZULTAT, MEDIE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Completati campul Rezultat cu valoarea promovat daca elevul a promovat testul national (note minimum 5 la cele 3 discipline) nepromovat in caz contrar; c. Pentru elevii promovati calculati media generala la disciplina romana; d. Determinati procentul de promovabilitate (nr elevi promovati / nr elevi inscrisi); e. Afisati elevii care au obtinut cea mai mare medie; f. Afisati 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. 3. Se considera tabela FILME cu structura: NUME, GEN, BUGET, DATA_AP a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Afisati pe ecran filmele gen “comedie” cu buget >10000; c. Afisati toate filmele din tabela grupate pe genuri; d. Afisati filmul care a avut cel mai mare buget; e. Stergeti din tabela filmele in aparute inainte de 1-ian-1990; f. Calculati bugetul total al tuturor filmelor gen “aventura”. Rezolvare: b. select nume from filme where gen=’comedie’ and buget>10000; 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’; 4. Se 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 in 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 in clasa 12B. Faceti modificarile necesare. Rezolvare: b. select nume from elevi where medie=(select max(medie) from elevi where clasa=’12a’) and
clasa=’12a’; c. select * from elevi where abs_nem>20 order by nume; d. select clasa, sum(abs_nem) as „total_absente” from elevi group by clasa; e. delete from elevi where abs_nem>40; f. update 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 implinesc 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) a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare b. Afisati excursiile din tabela cu destinatia “NISA” ordonate crescator dupa data plecarii c. Aflati destinatia (destinatiile) cea mai ieftina d. Afisati excursiile din tabela grupate pe destinatii e. Modificati pretul la excursiile cu avionul (pretul excursiei scade cu 25%) f. Stergeti 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. 7.Se 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: a. select * from ciocolata where pret_buc>20 order by firma_prod; b. select firma_prod from ciocolata where pret_buc=(select min(pret_buc) from ciocolata); c. select count(sortiment) from ciocolata group by firma_prod; d. update ciocolata set pret_buc=pret_buc-15*pret_buc/100 where firma_prod =’primola’; e. delete from ciocolata where firma_prod=’poiana’. 8.Se considera tabela LIBRARIE cu structura: TITLU, AUTOR, PRET_BUC, EDITURA a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;
b.Afisati toate cartile autorului “Mihai Eminescu” ordonate descrescator dupa pret; c.Aflati costul total al tuturor cartilor de la editura “Donaris”; d.Afisati pentru fiecare autor numarul total al cartilor sale; e.Aflati cartea (cartile) cea mai scumpa; f.Stergeti 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_buc>20 and editura=:x; 9.Se considera tabela FARMACIE cu structura: MEDICAMENT, DATA_EXP, PRET a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare. b.Afisati medicamentele care mai au o luna pana la expirare c.Micsorati pretul cu 5% la medicamentul aspirina; d.Aflati medicamentul(medicamentele) cel mai ieftin; e.Aflati pretul unui medicament dat de la tastatura; f.Stergeti 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’. 10.Se considera tabela CONCURS cu structura : NUME, NOTA1, NOTA2, NOTA3, NOTA_FIN, DATA_NAST, JUDET a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Calculati nota_fin (media aritmetica a celor 3 note) pentru fiecare candidat; c.Afisati concurentii care au obtinut nota finala peste 7 in ordinea descrescatoare a mediilor; d.Afisati candidatul (candidatii) cu nota finala maxima; e.Afisati mediile generale pe judete (media aritmetica a notelor finale pentru fiecare judet); f.Stergeti 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_fin>7 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_fin<5. 11.Se considera tabela FIRME cu structura: NUME, DATA_AP, ORAS, CAPITAL, NR_ANG a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Afisati firmele care au cel putin 3 ani de la infiintare ordonate alfabetic; c.Afisati firmele din tabela grupate pe orase; d.Aflati firma (firmele) cu cei mai multi angajati; e.Mariti cu 10% capitalul social al firmei x preluata de la tastatura; f.Stergeti 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 capital<1000. 12.Se considera tabela CARTI cu structura: COD_CARTE, DENUMIRE_CARTE, AUTOR, AN_APARITIE, GEN, PRET.
a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze cartile a caror pret nu depaseste 10 RON; c.Sa se diminueze cu 10% pretul cartilor al caror an de aparitie este introdus de la tastatura; d.Sa se afiseze valoarea cartilor pentru fiecare autor a carui nume incepe cu litera A; e.Sa se afiseze denumirea cartii si autorul pentru care pretul este maxim; f.Sa se afiseze cartea si autorul pe genuri literare. Rezolvare: b. select * from carti where pret<10; 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. 13.Se considera tabela TARI cu structura: NUME, REGIUNE, SUPRAFATA, POPULATIE, PIB (produsul intern brut al unei tari). a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze tarile a caror populatie este mai mare de 20 milioane; c.Sa se afiseze tarile a caror regiune este introdusa de la tastatura; d.Afisati tarile in ordine descrescatoare a valorii produsului intern brut; e.Sa se afiseze tarile cu suprafata minima; f.Sa se afiseze numarul tarilor pe regiuni. Rezolvare: b. select * from tari where populatie>20 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. 14.Se considera tabela SECTIE cu structura: COD_SECTIE,DENUMIRE, NR_ANGAJATI, PRODUCTIE, CIFRA_A(cifra de afaceri), PRODUCTIVITATE. a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze sectiile cu numarul de angajati mai mare de 1000; c.Sa se completeze campul productivitate dupa formula cifra de afaceri/numar de angajati; d.Afisati sectiile cu productivitatea cea mai mare; e.Sa se stearga datele din baza de date pentru o sectie a carui cod este introdus de la tastatura; f.Sa se ordoneze crescator dupa productie. Rezolvare: b. select * from sectie where nr_ang>1000; 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. 15.Se considera tabela CLADIRI cu structura: DENUMIRE, LOCALITATE, VAL_INV (valoarea investitiei), AN_CON (anul construirii), INDICE, VAL_ACT (valoarea actualizata). a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze denumirea cladirilor a carei valoare actualizata este mai mica de 100.000 RON; c.Modificati campul indice cu valoarea 1 pentru cladirile construite inainte de 1950 si cu 2 pentru cladirile construite dupa 1950; d.Afisati numarul cladirilor construite in anul 1970; e.Afisati cate cladiri au fost construite in fiecare localitate; f.Sa 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_act<1000; c. update cladiri set indice=2 where an_con>=1950; update cladiri set indice=1 where an_con<1950;
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. 16.Se considera tabela MATERIALE cu structura: DEN_MAT, STOC_I (stoc ini?ial), INTRARI , IESIRI, STOC_F (stoc final) a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se completeze campul stoc final dupa formula: stoc initial+intrari-iesiri; c.Sa se afiseze materialele a caror stoc final este egal cu zero; d.Afisati materialele in ordine crescatoare a stocurilor initiale; e.Afisati materialele pentru care valoarea intrarii este cea mai mica. f.Stergeti din tabela materialele care au stocul final cuprins in 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 :a10;
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. 20.Se considera tabela ABONATI cu structura: NUME, CNP, MIN_INCLUSE, MIN_UTILIZATE, VALOARE, ACHITAT, RETEA. a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze pentru fiecare abonat valoarea facturii pe care trebuie sa o achite cunoscand ca minutele suplimentare costa cu 10% mai mult decat minutele incluse si ca tariful unui minut inclus este de 0,25 lei; c.Afisati abonatii care sunt restanti; d.Sa se afiseze abonatii cu valoarea facturata cea mai mare; e.Pentru abonatul a carui CNP s-a introdus de la tastatura sa se indice daca a achitat; f.Sa se afiseze valoarea obtinuta din incasari 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. 21.Se considera tabela STUDENTI cu structura: NUME, CNP, AN, MEDIE, BURSA. a.Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b.Sa se afiseze cati studenti primesc bursa din anul I; c.Afisati studentii care au bursa de merit(media peste 9,50 inclusiv); d.Afisati numarul studentilor bursieri din fiecare an; e.Afisati care este valoarea maxima a bursei dupa marirea cu 20% f.Sa 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. 22. Se considera tabela ELEVI cu structura: CODELEV, NUME, PRENUME, CLASA, MEDIA, CODSEFCLASA a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze in ordinea alfabetica primii 3 elevi din clasa C (C citit de la tastatura); c. Cati elevi al caror nume se termina cu litera ‘U’ sunt in tabela? d. Pentru fiecare clasa din tabela sa se calculeze media pe clasa; rezultatele se vor afisa in formatul “Media clasei … este ….”; Coloana rezultata va avea aliasul „Medii”; e. Sa se afiseze elevii cu cea mai mare medie. Se vor afisa primele trei linii (daca exista); f. Sa se afiseze elevii si sefii lor de clasa in formatul: “Seful de clasa al elevului ….. este …..”; 23. Se considera tabela PARIURI cu structura: CODPARIU, PERSOANA, CAL, SUMA, DATA a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze toate persoanele care au pariat in trimestrul 1. Informatiile se vor afisa in formatul: “Persoana … a pariat in data de …. suma de …. pe calul …”; c. Persoana de la pariul cu codul X si-a triplat suma pariata. Actualizati tabela. d. Cate persoane au pariat in luna curenta pe calul cu numele C? (C dat de la tastatura);
e. f.
Calul cu numele X s-a imbolnavit. Sa se stearga toate pariurile din luna curenta pe acest cal; Sa se afiseze numele persoanei/persoanelor cu cea mai mare suma pariata la un pariu;
24. Se considera tabelele ECHIPE si MECIURI cu structurile: ECHIPE (ID, NUME, ORAS) MECIURI (ID, ID_ECHIPA1, ID_ECHIPA2, GOL1, GOL2, DATA) a. Sa se creeze tabelele si sa se introduca cate 6 articole care sa corespunda cerintelor urmatoare; b. Afisati in ordine alfabetica toate echipele cu numele incepand cu litera S; Prima litera din numele echipei va fi litera mare, restul vor fi litere mici; c. Meciurile din data D (citita de la tastatura) au fost amanate cu 7 zile. Actualizati tabela; d. Adaugati o noua echipa cu id-ul 1001, numele “Speranta” care sa fie acelasi oras cu echipa cu numele X (X citit de la tastatura); e. Stergeti din tabela meciurile disputate in zilele de joi; f. Afisati toate meciurile in 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 p.nume as „nume echipa 1”, (select p.nume from echipe p,meciuri f where p.id=f.id_echipa2) as „nume echipa 1”, f.gol1, f.gol2 from echipe p, meciuri f where p.id=f.id_echipa1; 25. Se considera tabelele ANGAJATI si DEPARTAMENTE cu structurile: ANGAJATI (ID, NUME, PRENUME, DATA_ANGAJARE, SALARIU, ID_DEP) DEPARTAMENTE (ID, DENUMIRE) a. Sa se creeze tabelele si sa se introduca cate 6 articole care sa corespunda cerintelor urmatoare; b. Salariul persoanelor angajate de cel putin 10 luni se mareste cu 10%. Actualizati tabela ANGAJATI; c. Sa se adauge un nou angajat care sa lucreze in acelasi departament cu angajatul cu numele Y (Y citi de la tastatura); d. Departamentul cu denumirea D (D citit de la tastatura) s-a desfiintat. Actualizati cele doua tabele, stergand departamentul si angajatii care lucreaza in acest departament; e. Sa se afiseze toti angajatii din departamentul cu denumirea X (X citit de la tastatura); Informatiile vor fi afisate in formatul “Angajatul ….. lucreaza in departamentul ….”. f. Sa se afiseze salariul maxim pentru fiecare departament. Rezultatele vor fi afisate in formatul “Salariul maxim din departamentul ….. este …..”. Coloana rezultata va avea aliasul SALARII. Rezolvare: b. UPDATE ANGAJATI1 SET SALARIU=(SALARIU +(10/100)*SALARIU) WHERE ((SYSDATEDATA_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 ", d.denumire as "departamentul.." from angajati1 a, departamente d where a.id_dep=(select id from departamente where denumire=:x) and a.id_dep=d.id; f. select (’salariul maxim din departamentul’ ||id_dep|| ’este’ || max(salariu)) as salarii from angajati group by id_dep, salariu 26. Se considera tabelele: TURISTI si EXCURSII cu structurile: TURISTI (COD, NUME, SEX, COD_EXC) EXCURSII (COD , DESTINATIE , DATA_INCEPUT, DATA_SFARSIT, PRET) a. Sa se creeze tabelele si sa se introduca cate 6 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze destinatiile in ordine alfabetica. Fiecare destinatie va fi afisata o singura data; c. Excursiile care vor avea loc la Predeal in lunile de iarna s-au ieftinit cu 100 lei. Actualizati tabela EXCURSII; d. Stergeti din tabela turistul cu numele X (X citit de la tastatura); e. Cati turisti au ales destinatia ‘Vatra Dornei’?
f. Afisati turistii care au participat la excursii cu durata mai mare de 7 zile. Informatiile vor fi afisate in formatul: „Turistul …. a participat la excursia ….in perioada …. - ….”. Rezolvare: b. select * from excursii order by destinatie c. d. delete from turisti where nume=:x; e. select t.nume, e.destinatie from turisti t, excursii26 e where t.codexc=e.cod; f. 27. Se considera tabelele NUMERE1 si NUMERE2 cu structurile: NUMERE1 ( CIFRA ) NUMERE2 ( CIFRA ) a. Sa se completeze fiecare din cele doua tabele cu cifrele de la 1 la 5; b. Sa se afiseze cifrele din a doua tabela folosind scrierea cu cifre romane; c. Sa se afiseze tabla inmultirii pana la 5 in formatul “cifra x cifra = rezultat”; se vor afisa primele 20 de linii; d. Sa se afiseze tabla inmultirii cu X (X<6 cifra nenula citita de la tastatura); e. Sa se afiseze catul si restul impar?irii cifrei X la toate celelalte cifre in formatul “cifra / cifra = (cat, rest)” X (X<6 cifra nenula citita de la tastatura); f. Cifrele din prima tabela se vor inversa: 5,4,3,2,1. Actualizati tabela. 28. Se considera tabela PACHETE cu structura EXPEDITOR, DESTINATAR, DATA_EXPEDIERE, CATEGORIA, GREUTATE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze in ordine alfabetica a destinatarului pachetele care nu au completat expeditorul; c. Sa se calculeze media aritmetica a greutatilor pachetelor din tabela; d. Se completeaza cu NECUNOSCUT toti expeditorii nespecificati si cu data de astazi toate datele de expediere necompletate; e. Sa se stearga toate pachetele expediate anul trecut care au greutatea mai mica decat X (citit de la tastatura); f. Care 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); 29. Se considera tabela PRODUSE cu structura: ID, DENUMIRE, CATEGORIE, DATA_EXP, PRET, CANTITATE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze produsele care expira astazi; se vor afisa doar primele 5 linii; c. Care este valoarea totala a produselor din tabela? Afisati in formatul “Valoarea totala este….”; d. Produsele care expira maine se ieftinesc cu 50%. Actualizati tabela; e. Sa se adauge un nou produs care sa fie in aceeasi categorie cu produsul cu id-ul egal cu 4. f. Sa 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)
30. Se 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 in 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); 31. Se 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; b. afisarea clasamentului final in ordine descrescatoare a punctajelor si la punctaje egale alfabetic dupa nume; c. citindu-se codul unui concurent si un nou punctaj al acestuia actualizati informatiile din tabela; d. lista concurentilor cu punctaje maxime; e. numarul de concurenti din fiecare tara; f. sa 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); 32. Se considera tabela PACIENTI cu structura COD, NUME, DIAGNOSTIC, ADRESA, NR_ZILE_ SPITALIZARE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. lista alfabetica a pacientilor; c. stergeti din tabela inregistrarea corespunzatoare unui cod introdus de la tastatura; d. afisati pacientii cu un numar maxim de zile de spitalizare; e. numarul de pacienti pentru fiecare diagnostic; f. pentru 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; 33. Se considera tabela ANGENTII cu structura COD, DENUMIRE, LOCALITATE, NR_ANGAJATI a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. lista alfabetica a agentiilor; c. citindu-se codul unei agentii si un nou numar de angajati actualizati datele corespunzatoare din tabela; d. modificati numarul angajatilor de la o agentie al carei cod se citeste de la tastatura diminuandu-l cu 10 %; e. numarul de agentii pe localitati;
f. sa 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). 34. Se considera tabela SPECII cu structura COD_SPECIE, NUME, ZONA, NR_EXEMPLARE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. lista alfabetica a speciilor; c. stergeti din tabela un articol de cod introdus de la tastatura; d. afisati numarul total de specii pe zone; e. afisati lista alfabetica a zonelor existente in tabela ; f. lista 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). 35. Se considera tabela BIBLIOTECA cu structura COD, TITLU, AUTOR, NR_EXEMPLARE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. sa se afiseze numarul total de exemplare din tabela; c. lista alfabetica a titlurilor cu numar maxim de exemplare; d. pentru fiecare autor afisati numarul total de exemplare; e. stergeti din tabela toate articolele unui autor introdus de la tastatura; f. pentru 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; 36. Se considera tabela CREDITE cu structura COD, NUME, DATA, PERIOADA, SUMA. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. lista persoanelor pentru care perioada de creditare s-a incheiat; c. lista persoanelor care au credite cu sume maxime; d. calculati suma totala a creditelor pe fiecare an; e. pentru un cod introdus de la tastatura mariti perioada de creditare cu 1 luna. f. stergeti din tabela inregistrarea corespunzatoare unui cod citit de la tastatura. Rezolvare: b. select * from credite where data+perioada
b. lista publicatiilor lansate in anul 2009; c. numarul de publicatii cu numar maxim de exemplare; d. calculati numarul total de publicatii pe an de aparitie; e. lista publicatiilor alfabetic si pe an de aparitie; f. pentru 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; 38. Se 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 in 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; 39. Se 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 cuvantul “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 in 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’; 40. Se considera tabela AGENDA cu structura: ID_AGENDA, NUME, PRENUME, DATA_NASTERE, TELEFON, EMAIL, ADRESA, NR_COPII. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze persoanele care au un singur copil si locuiesc in orasul X introdus de la tastatura. c. Lista persoanelor care sunt nascute in luna noiembrie. d. Sa se afiseze lista persoanelor care locuiesc in judetul Neamt (prefix 0233)si nu au adresa de email. e. Afisati persoanele care au acelasi numar de copii cu persoana cu numele X (X citit de la tastatura); f. Lista 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; 41. Se considera tabela PAPETARIE cu structura: ID_PRODUS, NUME_PRODUS, PRET, NR_EXEMPLARE, FURNIZOR. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Care este produsul care se gaseste in stoc in cantitate maxima. c. Lista furnizorilor de produse din Papetarie. d. Sa se stearga produsul / produsele cu pret minim; e. Stergerea din baza de date a produselor furnizorului introdus de la tastatura. f. Care 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; 42. Se considera tabela CLASE cu structura: CNP, NUME, PRENUME, DATA_NASTERE, LOCALITATE, EMAIL, MEDIE. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze elevii care nu locuiesc intr-un oras introdus de la tastatura; c. Care sunt elevii care au ziua de nastere in luna curenta; d. Sa se afiseze numarul de elevi din fiecare localitate; e. Sa se afiseze elevii care au media mai mare decat media maxima a elevilor dintr-o localitate data de la tastatura; f. Lista elevilor in 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; 43. Se considera tabela IMOBILIARA cu structura: ID_LOC, NR_CAMERE, SUPRAFATA, TIP, ETAJ, PRET. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze structura apartamentelor situate la etajul 1. c. Sa se afiseze care sunt tipurile de apartamente din tabela. d. Sa se afiseze apartamentele decomandate care au suprafata cuprinsa intre doua valori introduse de la tastatura. e. Sa se stearga din tabela articolele care au pretul minim si 2 camere. f. Sa se afiseze ofertele de apartamente in 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; 44. Se considera tabela FARMACIE cu structura: ID_PRODUS, PRET, STOC, DATA_EXPIRARE, FURNIZOR. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Care cantitatea existenta in stoc pentru un medicament introdus de la tastatura. c. Care sunt produsele in cantitate maxima in stoc. d. Lista produselor pentru care termenul de valabilitate expira peste 2 luni.
e. Cantitatea de produse in stoc pe furnizori. f. Sa se afiseze produsele alfabetic si pentru acelasi produs crescator in 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-06-2010’; e. select sum(stoc), furnizori from farmacie group by furnizor; f. select * from farmacie order by pret; 45. Se considera tabela CARTI cu structura: AUTOR, TITLU, EDITURA, NR_EXEMPLARE, AN_ACHIZITIE. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Care sunt editurile la care au fost publicate cartile achizitionate. c. Autorii si titlul lucrarilor cu numar maxim de exemplare in tabela. d. Care sunt numarul de titluri publicate de fiecare editura. e. Lista lucrarilor achizitionate intre 1990 si 2009. f. Lista 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; 46. Se considera tabela CLIENTI cu structura: ID_CLIENT, NUME, PRENUME, TELEFON, EMAIL, ADRESA, ORAS. a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Care sunt orasele in care locuiesc clientii din tabela. c. Care este numarul clientilor dintr-un oras dat de la tastatura. d. Sa se afiseze numele si prenumele clientilor care au prefixul telefonic ‘0233’. e. Care sunt clientii care nu au adresa de email in tabela. f. Lista clientilor pe orase si in 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; 47. Se considera tabela LOCATARI cu structura NUME, PRENUME, APARTAMENT, RESTANTA, TAXA_LIFT a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Afi?a?i pe ecran locatarii cu restante de plata; c. Inlocui?i in baza de date datele locatarului de la apartamentul 11 cu datele noului proprietar; d. Determina?i valoarea totala a restantelor de plata e. Locatarul de la apartamentul X are aceeasi restanta cu locatarul de la apartamentul Y. Actualizati tabela; (X, Y citite de la tastatura) f. Afi?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 e.update locatari set restanta=(select rest from locatari where n=:x) where nume=:y; f. select * from locatari where taxa is null and rownum<6; 48. Se considera tabela LABORATOR cu structura NUMAR_STATIE, PROCESOR, FRECVENTA, MEMORIE, DVD, VALOARE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare;
b. Afi?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 d. Cate sta?ii sunt prevazute cu unitate de DVD? e. Determina?i valoarea totala de inventar a sta?iilor. f. Afisati numarul statiilor pentru fiecare tip de procesor. Rezolvare: b. select numar_statie, procesor, frecventa from laborator where procesor='Intel' and frecventa>1000 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; 49. Se considera tabela MUNCITORI cu structura NUME, COD_ATELIER, NR_PIESE a. Sa se creeze tabela si sa se introduca 10 articole care sa corespunda cerintelor urmatoare; b. Sa se afiseze numarul atelierelor din tabela; c. Sa se afiseze codul atelierului din tabela cu cei mai multi muncitori; d. Muncitorul cu numele X (dat de la tastatura) se pensioneaza. Eliminati-l din tabela; e. Sa se afiseze numarul de piese produse de fiecare atelier; f. Sa 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) 50. Se 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)