Sunteți pe pagina 1din 2

BAZE DE DATE – SEMINAR 7

___________________________________________________________________________

Exercitii:
1. Sa se selecteze din tabela angajaţi numai angajatii care au salariul cuprins intre 8000 si
10000.
Select * from Angajati
where salariul between 8000 and 10000;

2. Sa se selecteze din tabela angajati numai angajatii care au functia SA_REP.


Select * from Angajati
Where id_functie='SA_REP';

3. Sa se selecteze angajatii care sunt in acelasi departament cu angajatul Smith.


Select * from Angajati
where id_departament in (Select id_departament from angajati where
LOWER(nume)='smith');

4. Să se afişeze produsele care au preţul unitar cel mai mic.


Select * from Produse
Where pret_min = (Select Min(pret_min) from Produse);

5. Modificati conditia de la punctul 2 astfel incat sa fie selectati si cei care au in


denumirea functiei atributul ACCOUNT.
Select * from Angajati a
Where a.id_functie='SA_REP'
or a.id_functie like '%Account%';

6. Sa se selecteze toti angajatii pentru care a doua litera din e-mail este A, B sau C.
Select * from Angajati
Where email like '_A%'
or email like '_B%'
or email like '_C%';

7. Sa se selecteze toti angajatii care au numarul de telefon format din al doilea grup de
cifre din 123 (de exemplu: 515.123.4569)
Select * from Angajati
Where telefon like '___.123.____';

8. Sa se selecteze toti angajatii angajati inainte de 1 ianuarie 2009 (data_angajare).


Select * from Angajati
where DATA_ANGAJARE < TO_DATE('01-01-2009','dd-mm-yyyy');

9. Modificati conditia de mai sus astfel incat sa afisati numai salariatii angajati in
ianuarie 2009.

Select * from Angajati


where Extract(month from Data_angajare) = 01
and EXTRACT(YEAR FROM Data_angajare) = 2009;

1
BAZE DE DATE – SEMINAR 7
___________________________________________________________________________

10. Sa se selecteze numele, salariul, denumirea functiei angajatilor şi denumirea


departamentului pentru cei care lucreaza în departamentul IT.

Select a.nume, a.salariul,a.id_functie, d.denumire_departament


from Departamente d, Angajati a
where d.id_departament=a.id_departament
and d.denumire_departament like '%IT%';

11. Modificati conditia de mai sus astfel incat sa fie selectati toti angajatii din
departamentele care au in denumire specificatia IT, indiferent daca acestea au sau nu
angajati.
Select a.nume, a.salariul,a.id_functie, d.denumire_departament
from Departamente d, Angajati a
where d.id_departament=a.id_departament(+)
and d.denumire_departament like '%IT%';

12. Sa se afiseze id departament, denumire departament, salariul minim si numărul de


angajati pentru fiecare departament, cu mai mult de 5 angajați.
Select a.id_departament, d.denumire_departament, Min(a.salariul) as salariul_minim,
Count(a.id_angajat) as Numar_angajati
From Departamente d, Angajati a
Where d.id_departament=a.id_departament
group by a.id_departament, d.denumire_departament
Having Count(a.id_angajat)>5;

13. Sa se afiseze toate produsele indiferent daca acestea au fost comandate sau nu.
Select * from rand_comenzi rc, produse p
where p.id_produs=rc.id_produs(+);

14. Afisati numele si in ordine crescatoare salariile si in ordine descrescatoare data


angajarii pentru salariatii din departamentul vânzări (Sales).
Select a.nume, a.salariul, a.data_angajare, d.denumire_departament
from Angajati a, departamente d
where a.id_departament=d.id_departament
and d.denumire_departament like '%Sales%'
order by a.salariul asc, data_angajare desc;

15. Sa se selecteze numele, functia, comisionul si departamentul angajatilor care nu au


comisionul NULL.
Select nume, id_functie, comision, id_departament
from Angajati
where comision IS NOT NULL;

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