Documente Academic
Documente Profesional
Documente Cultură
2013-2014
Subiecte Atestat_Oracle
a) SELECT autor, COUNT(titlu) AS Numar carti
FROM carti_2
GROUP BY autor;
b) SELECT COUNT(titlu) AS Numar carti imprumutate
FROM carti_2
WHERE data_imp=25-OCT-08;
c) SELECT autor, titlu
FROM carti
ORDER BY titlu;
2013-2014
Subiecte Atestat_Oracle
2013-2014
4
depart_4 (nrdepart N2, numedepart C15, loc C 20)
PK=nrdepart, localitate poate s fie numai Iai, Bucureti, Ploieti, Cluj
nrdepart (PK)
numedepart
loc
11
depart_1
Iasi
12
Bucuresti
depart_2
13
Ploiesti
depart_3
14
Cluj
depart_4
15
Iasi
depart_5
16
Bucuresti
depart_6
17
Ploiesti
depart_7
18
Cluj
depart_8
ang_4 (numeang c 15, funcie c 15, salariu n 5, comision n 5, nrdepart n 2)
numeang
functie
salariu
comision
nume_1
functie_1
1000
10
2000
20
nume_2
functie_2
3000
30
nume_3
functie_3
1500
10
nume_4
functie_4
2500
20
nume_5
functie_5
3500
30
nume_6
functie_6
1000
10
nume_7
functie_7
2000
20
nume_8
functie_8
3000
30
nume_9
functie_9
1500
10
nume_10
functie_10
Nrdepart (FK)
11
12
13
14
15
16
11
12
13
14
S se introduc n fiecare tabel cel puin 5 articole cu date. Toate numerele de departament trecute n prima
tabel se vor regsi n cea de a doua.
Se cere:
a. S se afieze localitatea n care exist un departament cu numr dat de utilizator dup vizualizarea
tabelei depart_4, ct i informaii despre toi angajaii din acest departament.
SELECT * FROM depart_4;
SELECT loc AS Departamentul este in
FROM depart_4
WHERE nrdepart=:nrdep;
SELECT numeang AS Angajatii dept:
FROM ang_4
WHERE nrdepart=:nrdep;
b. S se calculeze totalul veniturilor angajailor firmei. Se va lua n calcul i comisionul fiecrui angajat
(venit=salariu+comision).
SELECT SUM(salariu+NVL(commission,0) AS Venit total
FROM ang_4;
Subiecte Atestat_Oracle
2013-2014
5
depart_5 (nrdepart N2, numedepart C15, loc C 20)
PK=nrdepart, localitate poate s fie numai Iai, Bucureti, Ploieti, Cluj
nrdepart (PK)
numedepart
loc
11
depart_1
Iasi
12
Bucuresti
depart_2
13
Ploiesti
vanzari
14
Cluj
depart_4
15
Iasi
depart_5
16
Bucuresti
depart_6
17
Ploiesti
depart_7
18
Cluj
depart_8
ang_5 (numeang c 15, funcie c 15, salariu n 5, nrdepart n 2)
numeang
functie
salariu
nume_1
functie_1
1000
2000
nume_2
functie_2
3000
nume_3
functie_3
1500
nume_4
functie_4
2500
nume_5
functie_5
3500
nume_6
functie_6
1000
nume_7
functie_7
2000
nume_8
functie_8
3000
nume_9
functie_9
1500
nume_10
functie_10
nrdepart (FK)
11
12
13
14
15
16
11
12
13
14
S se introduc n fiecare tabel cel puin 5 articole cu date. Toate numerele de departament trecute n prima tabel se
vor regsi n cea de a doua
Se cere:
a. S se afieze salariu minim al angajailor departamentului VANZARI
b. S se afieze angajaii i venitul total al acestora ordonai alfabetic dup departament.
c. Calculai valoarea total a veniturilor pentru fiecare localitate unde exist angajai ai firmei
d. S se afieze numele, salariu i funcia tuturor angajailor n ordinea alfabetic a funciei i s se determine salariu
mediu pentru fiecare funcie existent.
a)
SELECT MIN(salariu) AS Salariul minim
FROM ang_5
WHERE nrdepart IN
(SELECT nrdepart FROM depart_5 WHERE numedepart=VANZARI);
b)
SELECT d..numedepart, a.numeang AS Anagajat, salariu AS Venit
FROM ang_5 a, depart_5 d
WHERE a.nrdepart=d.nrdepart
ORDER BY d.nrdepart;
SELECT SUM(salariu) AS VENIT
FROM ang_5;
c)
SELECT d.loc AS Localitate, SUM (a.salariu) AS Venit total pe localitate
FROM ang_5 a, depart_5 d
WHERE a.nrdepart=d.nrdepart
GROUP BY loc;
d)
SELECT numeang, salariu, functie
FROM ang_5
ORDER BY functie;
4
Subiecte Atestat_Oracle
2013-2014
Subiecte Atestat_Oracle
2013-2014
7
pacienti_7 (nume_medic, nume_pacient, diagnostic, data_consultului), i s se introduc cel puin 8 articole. Un
articol reprezint un pacient dintr-o policlinic (un consult - un articol).
nume_medic
nume_pacient
diagnostic
data_consult
Popescu
pacient1_Popescu
rubeola
azi
Ionescu
pacient1_Ionescu
rubeola
ieri
Georgescu
pacient1_Georgescu
gripa
azi
Popescu
pacient2_Popescu
gripa
azi
Ionescu
pacient2_Ionescu
pojar
ieri
Georgescu
pacient2_Georgescu
pojar
azi
Popescu
pacient3_Popescu
rubeola
ieri
Ionescu
pacient3_Ionescu
rubeola
ieri
a. S se afieze numele tuturor pacienilor medicului m, cu m citit de la tastatur.
b. S se nlocuiasc n toat tabela numele medicului "Popescu" cu "Vasilescu" i s se afieze coninutul tabelei dup
nlocuire.
c. S se afieze n ordine alfabetic numele tuturor pacienilor consultai la data d (cu d citit de la tastatur)
mpreun cu diagnosticele lor.
a)
SELECT nume_pacient
FROM pacienti_7
WHERE TRIM(nume_medic)=:m;
b)
UPDATE pacienti_7
SET nume_medic=Vasilescu
WHERE nume_medic=Popescu
-----------------SELECT * FROM pacienti_7
c)
SELECT nume_pacient, diagnostic
FROM pacienti_7
WHERE data_consultului=:d
ORDER BY nume_pacient;