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 upper(nume)= 'SMITH');

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


SELECT p.denumire_produs, rc.pret FROM produse p, rand_comenzi rc
WHERE p.id_produs = rc.id_produs
AND rc.pret=(SELECT MIN(rand_comenzi.pret) FROM rand_comenzi);

5. Modificati conditia de sus astfel incat sa fie selectati si cei care au in denumirea
functiei atributul ACCOUNT.
Select * from angajati where id_functie = 'SA_REP' OR 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 1ianuarie 2000 (data_angajare).


Select * from angajati where data_angajare < to_date('01.01.2000', 'DD.MM.YYYY');

9. Modificati conditia de mai sus astfel incat sa afisati numai salariatii angajati in
ianuarie 2000.
Select * from angajati where extract(year from data_angajare) = 2000 and
extract(month from data_angajare) = 1;

10. Sa se selecteze numele, salariul, functia angajatilor şi denumire departamentului


pentru cei care lucreaza în din departamentul IT.
Select a.nume, a.salariul, a.id_functie, d.denumire_departament from angajati a,
departamente d
where a.id_departament = d.id_departament and 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 angajati a, departamente d where a.id_departament(+) = d.id_departament
and denumire_departament like '%IT%';

1
BAZE DE DATE – SEMINAR 7
___________________________________________________________________________

12. Sa se afiseze toate comenzile, iar pentru comenzile directe sa se afiseze numele
angajatilor.
Select nr_comanda, data, modalitate, nume from comenzi c, angajati a where c.id_angajat
= a.id_angajat (+);

13. Sa se afiseze toate produsele indiferent daca acestea au fost comandate sau nu
Select p.id_produs, denumire_produs, pret, cantitate from produse p, rand_comenzi c
where p.id_produs = c.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 nume, salariul, data_angajare, denumire_departament from angajati a,
departamente d where a.id_departament = d.id_departament and denumire_departament =
'Sales' order by 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