Sunteți pe pagina 1din 12

BAZE DE DATE

Problema 1
Să se creeze tabela:
LOCATII
#cod_carte
*id_raft
*an_intr
*valoare
a. Să se insereze trei înregistrări în tabelă
b. Să se afişeze cărţile(codul cărţilor) din bibliotecă pentru care nu este stabilită
valoarea.

Problema 2
Să se creeze tabela:
IMPRUMUTURI
#cod_carte
*cod_abonat
*data_imp
a. Să se insereze două înregistrări în tabelă
b. Să se afişeze cărţile împrumutate în ordinea crescătoare a datei împrumutului.

Problema 3
Fie următoarea tabela cu principalele producţii cinematografice din secolul XX:
Nume_film (C30), Gen(C20), Tara (C10), An (N4), Regizor (C20).
Construiţi o interogare care să rezolve următoarea cerinţă:
* Care sunt filmele produse în România în anul 2000?

Problema 4
Se dă o tabelă care memorează informaţiile despre elevii unei şcoli ( Nume, Clasa,
Data_naşterii, Vârsta, Media, Premiant).
Să se listeze toţi elevii corigenţi şi toţi elevii care au obţinut premii la sfârşitul
anului şcolar.

Problema 5
La examenul de bacalaureat se trec în tabela BAC următoarele informaţii: Nume (C20),
Nota_mate(N2), Nota_Rom1(N2), Nota_Rom2(N2), Nota_Inf(N2), Media (N4,2) unde
numai primele 5 câmpuri conţin date, câmpul Media fiind iniţial vid.
Se cere: Afişarea elevilor în ordinea descrescătoare a mediilor.
Problema 6
Să se construiască tabela care conţine datele referitoare la examenul de bacalaureat.
Structura acestei tabele va fi : Nume (C20), Clasa(C4), Media (N5,2).
Să se afişeze elevii care nu au promovat examenul de bacalaureat.

Problema 7
Pentru tabela SITUATIE_SCOLARA care reţine mediile de pe cele două semestre ale
fiecărui elev dintr-o clasă şi care are structura: Nume (C20), MS1 (N4,2), MS2 (N4,2),
Să se afişeze media generală a clasei.

Problema 8
Informaţiile despre salariaţii unei firme se reţin într-o tabela SALARIATI cu structura:
Nume(C20), Funcţia (C20), Salariul (N7). Care este numele persoanelor cu salariul
maxim?
Problema 9
Se dă tabela EVIDENTA cu următoarea structură: Nr_contract, Client, Valoare, Termen,
Achitat.
Afişaţi valoarea totală a contractelor încheiate.

Problema 10
Se consideră tabela ELEVI cu câmpurile:
Nr_matricol, Absente_motivate, Absente _nemotivate, Media_sem_1, Media_sem_2.
Calculează numărul total de absenţe motivate.

Problema 11
Să se construiască tabela care conţine datele referitoare la examenul de bacalaureat.
Structura acestei tabele va fi: Nume(C20), Clasa(C4), Media (N5,2).
Să se afişeze elevii respinşi .

Problema 12
Fie tabela FARMACIE ( Denumire_medicament(C20), Cantitate(N5),Preţ(N5)).
Listaţi medicamentul cel mai scump.
Ce preţ are aspirina?

Problema 13
Se dă tabela JUCATOR. Aceasta tabela conţine câmpurile:
Nume(C20), Echipa(C10), Oraş(C10), Vârsta(N3). Afişaţi:
Ordonaţi jucătorii alfabetic cu vârsta > 30.

Problema 14
Fie tabela ABONAT care conţine informaţii despre abonaţii unei televiziuni prin cablu, cu
următoarea structură : Nume (C20), NrPrograme (N4), PretLuna(N6), Achitat(L1):
Listaţi numele abonaţilor care nu si-au achitat factura.

Problema 15
Fie tabela ATLETISM care conţine informaţii despre sportivii participanţi la un concurs
de atletism, cu următoarea structură: Nume (C20), Vârsta (N2), TipProba (C20),
LocOcupat(N2).
Afişaţi atleţii care au ocupat locul I la proba de maraton.

Problema 16
Fie tabela ORAS cu următoarea structură:
NumeOras (C30), Judeţ (C20), NrLocuitori(N7).
Afişaţi oraşul/oraşele din judeţul Călăraşi cu cel mai mare număr de locuitori

Problema 17
Fie tabela ORAS cu următoarea structură : NumeOras (C30), Judeţ(C20),
NrLocuitori(N7).
Ordonaţi alfabetic tabela după câmpul Judeţ.

Problema 18
Fie tabela AUTOMOBIL. Creaţi o interogare care sa afişeze următoarele date:
Cod, culoare, an de fabricaţie, tip combustibil, firma producătoare.

Problema 19
Fie tabela MEDICAL care conţine despre bolnavii internaţi în secţia de pediatrie a unui
spital. Concepeţi structura unei interogări care să furnizeze informaţii privind cod, vârsta,
numele pacienţilor, boala, data internării, medicul curant.

Problema 20
La un concurs internaţional s-a construit o tabela MISS cu următoarea structură: Nume
(C30), Tara (C20), Inaltimea (N3), Greutatea (N2), Profesia (C20), LocOcupat(N2).
Listaţi toate persoanele cu înălţimea 185(cm);

Problema 21
La un concurs internaţional s-a construit o tabela MISS cu următoarea structură: Nume
(C30), Tara (C20), Inaltimea (N3), Greutatea (N2), Profesia (C20), LocOcupat(N2).
Afişaţi numele şi ţara celor mai înalte concurente participante (185cm-200cm);

Problema 22
Proiectaţi structura unei tabele LOCATARI şi apoi inseraţi în tabelă un nou locatar cu
datele sale.

Problema 23
Se consideră tabela REZ_ELEVI cu structura (Nume_pren (C50), scoala_prov(C50),
nota_ro(N(5,2)), nota_mat(N(5,2)), nota_gi(N(5,2)), Rezultat(L 1), medie(N(5,2)) ).
Afişaţi elevii care au obţinut cea mai mare medie la Testele Naţionale.

Problema 24
Se consideră tabela TRANZACTII ce reţine numele şi CNP-ul persoanei ce a cumpărat/
vândut valută, tipul operaţiei (vânzare/ cumpărare), cât a cumpărat / vândut, data
tranzacţiei, profitul încasat în urma tranzacţiei (în lei ). Introduceţi (inseraţi)o nouă
tranzacţie.

Problema 25
Se construieşte tabela GEAMGERIE ce reţine numele clientului, codul geamului
cumpărat, cantitatea (în m2), data cumpărării, valoarea încasării. Separat se creează tabela
PRETURI ce conţine codul geamului, denumirea, producătorul, preţul. Relaţionaţi cele
două tabele.

Problema 26
Să se creeze o tabela numită PEORASE, cu structura NUME, PRENUME, MEDIA,
REZULTAT, ORAŞ, grupând toţi candidaţii din acelaşi oraş în înregistrări consecutive,
candidaţii din acelaşi oraş fiind ordonaţi după nume şi prenume.

Problema 27
Construiţi o tabelă cu următoarele atribute:
Unic Autonumber
Oras Text - dimensiune 20
Data_curenta Date/Time - Short Date
Nume_persoana Text - dimensiune 30
 Atributul Unic să nu primească valori mai mari de 256.
 Introduceţi în tabela creată 5 inregistrări.

Problema 28
Creaţi o bază de date cu două tabele astfel:
 Creaţi o tabelă cu următoarele câmpuri
Unu Number (cheie primară)
Doi Text
 Creaţi o tabelă cu următoarele câmpuri
Cod Number (cheie primară)
Unu Number
Trei Date
 Creaţi o legătură între tabele prin intermediul câmpului Unu

Problema 29
Se dă tabela:
CARTI
#cod_carte
*titlu
*autor
*editura
*an_editie
Să se afişeze cărţile din bibliotecă pentru care nu se cunoaşte anul ediţiei .

DECLARE
CURSOR carti_curs IS SELECT * FROM carti where an_editie IS NULL ;

cod_carte_carti_curs carti.cod_carte%TYPE;
titlu_carti_curs carti.titlu%TYPE;
autor_carti_curs carti.autor%TYPE;
editura_carti_curs carti.editura%TYPE;
an_editie_carti_curs carti.an_editie%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' informatii despre toate cartile:');
open carti_curs;
loop
fetch carti_curs into cod_carte_carti_curs,titlu_carti_curs, autor_carti_curs,
editura_carti_curs, an_editie_carti_curs ;
exit when carti_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(cod_carte_carti_curs||' '||titlu_carti_curs||' '||


autor_carti_curs||' '||editura_carti_curs||' '||an_editie_carti_curs );
end loop;

close carti_curs;
END;

Problema 30
Se dă tabela:
ABONATI
#cod_abonat
*nume
*cnp
*telefon
*adresa
Creaţi o copie a structurii tabelei ABONATI.

Problema 31
Să se creeze tabela:
IMPRUMUTURI
#cod_carte
*cod_abonat
*data_imp
Să se afişeze cărţile împrumutate în ordinea descrescătoare a datei împrumutului.

Problema 32
Se dă tabela:
ACTORI
#id_actor
*nume
*data_n
*tara
Afişaţi numele şi data naşterii pentru actorii de provenienţă engleză.

DECLARE
CURSOR actori_curs IS SELECT nume,data_n FROM actori WHERE upper(tara) like
'ENGLAND';

nume_actori_curs actori.nume%TYPE;
data_n_actori_curs actori.data_n%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' actorii al caror nume incepe cu J sunt:');
open actori_curs;
loop
fetch actori_curs into nume_actori_curs,data_n_actori_curs ;
exit when actori_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(nume_actori_curs||' '|| data_n_actori_curs );


end loop;

close actori_curs;
END;

Problema 33
Să se creeze tabela:
FILME
#id_film
*titlu
*anul_prod
*incasari
*costuri
Afişaţi filmele produse între anii 2000 şi 2002.
DECLARE
CURSOR filme_curs IS SELECT titlu FROM filme WHERE (anul_prod>=2000 and
anul_prod<=2002);

titlu_filme_curs filme.titlu%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE(' filmele produse intre anii 2000 si 2002 sunt: ');
open filme_curs;
loop
fetch filme_curs into titlu_filme_curs;
exit when filme_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(titlu_filme_curs );
end loop;

close filme_curs;
END;

Problema 34
Se dă tabela:
CARTI
#cod_carte
*titlu
*autor
*editura
*an_editie
Afişaţi doar titlul şi autorul pentru fiecare carte din bibliotecă.
DECLARE
CURSOR carti_curs IS SELECT titlu, autor FROM carti ;

titlu_carti_curs carti.titlu%TYPE;
autor_carti_curs carti.autor%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' informatii despre titlul si autorul cartilor:');
open carti_curs;
loop
fetch carti_curs into titlu_carti_curs, autor_carti_curs ;
exit when carti_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(titlu_carti_curs||' '||autor_carti_curs );
end loop;

close carti_curs;
END;
Problema 35
Se dă tabela:
LOCATII
#cod_carte
*id_raft
*an_intr
*valoare
Afişaţi cartea care are cea mai mare valoare din bibliotecă.
DECLARE
CURSOR locatii_curs IS SELECT cod_carte FROM locatii WHERE valoare = (SELECT
max(valoare) FROM locatii);

cod_carte_locatii_curs locatii.cod_carte%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' codul cartilor cu valoarea cea mai mare');
open locatii_curs;
loop
fetch locatii_curs into cod_carte_locatii_curs ;
exit when locatii_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(cod_carte_locatii_curs);
end loop;

close locatii_curs;
END;

Problema 36
Se dă tabela:
LOCATII
#cod_carte
*id_raft
*an_intr
*valoare
Afişati codul cărţilor şi anul intrării în bibliotecă pentru cărţile fără locaţie.
DECLARE
CURSOR locatii_curs IS SELECT * FROM locatii WHERE valoare IS NULL;

cod_carte_locatii_curs locatii.cod_carte%TYPE;
id_raft_locatii_curs locatii.id_raft%TYPE;
an_intr_locatii_curs locatii.an_intr%TYPE;
valoare_locatii_curs locatii.valoare%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' informatii despre locatiile cartilor a caror
valoare nu este completata:');
open locatii_curs;
loop
fetch locatii_curs into cod_carte_locatii_curs, id_raft_locatii_curs,
an_intr_locatii_curs, valoare_locatii_curs ;
exit when locatii_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(cod_carte_locatii_curs||' '||id_raft_locatii_curs||' '||


an_intr_locatii_curs||' '||valoare_locatii_curs);
end loop;

close locatii_curs;
END;

Problema 37
Se dă tabela:
ACTORI
#id_actor
*nume
*data_n
*tara
Afişaţi numele şi data naşterii actorilor al căror nume începe cu litera J.

DECLARE
CURSOR actori_curs IS SELECT nume,data_n FROM actori WHERE
upper(substr(nume,1,1)) like 'J';

nume_actori_curs actori.nume%TYPE;
data_n_actori_curs actori.data_n%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' actorii al caror nume incepe cu J sunt:');
open actori_curs;
loop
fetch actori_curs into nume_actori_curs,data_n_actori_curs ;
exit when actori_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(nume_actori_curs||' '|| data_n_actori_curs );


end loop;
close actori_curs;
END;

Problema 38
Se dă tabela:
CARTI
#cod_carte
*titlu
*autor
*editura
*an_editie
Afişaţi toate informaţiile din tabela CARTI.

DECLARE
CURSOR carti_curs IS SELECT * FROM carti ;

cod_carte_carti_curs carti.cod_carte%TYPE;
titlu_carti_curs carti.titlu%TYPE;
autor_carti_curs carti.autor%TYPE;
editura_carti_curs carti.editura%TYPE;
an_editie_carti_curs carti.an_editie%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' informatii despre toate cartile:');
open carti_curs;
loop
fetch carti_curs into cod_carte_carti_curs,titlu_carti_curs, autor_carti_curs,
editura_carti_curs, an_editie_carti_curs ;
exit when carti_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(cod_carte_carti_curs||' '||titlu_carti_curs||' '||


autor_carti_curs||' '||editura_carti_curs||' '||an_editie_carti_curs );
end loop;

close carti_curs;
END;

Problema 39
Se dă tabela:
ACTORI
#id_actor
*nume
*data_n
*tara
Afişaţi doar actorii de origine spaniolă.
DECLARE
CURSOR actori_curs IS SELECT nume FROM actori WHERE upper(tara) like
'SPANIA';

nume_actori_curs filme.nume%TYPE;

BEGIN
DBMS_OUTPUT.PUT_LINE(' actorii din Spania sunt:');
open actori_curs;
loop
fetch actori_curs into nume_actori_curs;
exit when actori_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(nume_actori_curs );
end loop;

close actori_curs;
END;

Problema 40
Se dă tabela:
FILME
#id_film
*titlu
*anul_prod
*incasari
*costuri
*categorie
*firma_producatoare
Afişaţi titlul şi anul producţiei pentru filmele produse de Pixar.

DECLARE
CURSOR filme_curs IS SELECT titlu, anul_prod FROM filme WHERE
upper(firma_producatoare)='PIXAR';

titlu_filme_curs filme.titlu%TYPE;
anul_prod_filme_curs filme.anul_prod%TYPE;

BEGIN
open filme_curs;
loop
fetch filme_curs into titlu_filme_curs, anul_prod_filme_curs;
exit when filme_curs%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(titlu_filme_curs ||' '|| anul_prod_filme_curs);


end loop;

close filme_curs;
END;

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