0% au considerat acest document util (0 voturi)
55 vizualizări4 pagini

BD Lab4

Documentul prezintă o serie de 21 de interogări SQL care extrag diverse informații din tabelele unei baze de date referitoare la angajați, departamente, locații etc. Interogările selectează date precum salarii, date de angajare, număr de departamente/orașe etc., grupând sau filtrând rezultatele în funcție de anumite coloane ca de exemplu departament, job, țară.

Încărcat de

Cosmin
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
55 vizualizări4 pagini

BD Lab4

Documentul prezintă o serie de 21 de interogări SQL care extrag diverse informații din tabelele unei baze de date referitoare la angajați, departamente, locații etc. Interogările selectează date precum salarii, date de angajare, număr de departamente/orașe etc., grupând sau filtrând rezultatele în funcție de anumite coloane ca de exemplu departament, job, țară.

Încărcat de

Cosmin
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

1.

Afişaţi data curentă sub forma “Numele zilei, zz NumeLuna aaaa” (Ex: Marti, 22
Martie 2016).

select to_char(sysdate, 'Day, dd Month yyyy')

From dual

2. Afişaţi data ultimei angajări, salariul minim şi salariul maxim pentru fiecare
departament.

select max(HIRE_DATE), min (salary) , max (salary)


from employees
group by DEPARTMENT_ID;

3. Afişaţi numărul de departamente pentru fiecare locaţie. (Departments)


select location_id, count(department_id)
from departments
group by location_id;

4. Afişaţi numărul de oraşe distincte care sunt înregistrate pentru fiecare ţară.
(Locations) Ordonaţi datele în funcţie de numărul de oraşe.
select count(distinct city)
from locations
group by country_id
order by count(distinct city);

5. Afişaţi departamentele în care salariul maxim este mai mare dacât 10000.

select department_id, max(salary)

from employees

group by department_id

having max(salary)>10000;

6. Afişaţi numărul de angajati cu comision pentru fiecare job.


select job_id, count(employee_id)
from employees
where commission_pct >0 (where commission_pct is not null)
group by job_id;
select count(commission_pct), job_id
from employees
group by job_id

7. Afişaţi numărul de departamente care au manager.

select count(department_id)

from departments

where manager_id is not null;

8. Afişaţi media rotunjită a salariului minim pentru fiecare tip de job.


select round(avg(min(salary)))
from employees
group by job_id;

9. Afişaţi salariul maxim şi data primei angajări pentru fiecare departament şi fiecare
job. Ordonaţi datele după data afişată.

select DEPARTMENT_ID, JOB_ID ,max(salary), min(hire_date)

from employees

group by department_id, job_id

order by MIN(hire_date) asc;

10. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte.


select to_char(hire_date, 'yyyy'), max(salary), count(employee_id)
From employees
group by to_char(hire_date, 'yyyy');

11. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte, pentru anii
în care acest număr a fost mai mare decât 10.
select to_char(hire_date, 'yyyy'), max(salary), count(employee_id)
From employees
group by to_char(hire_date, 'yyyy')
having count(employee_id)>10;

12. Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte, pentru anii
1993-1998.
select to_char(hire_date, 'yyyy'),count(employee_id) , max(salary)
From employees
group by to_char(hire_date, 'yyyy')
having to_char(hire_date, 'yyyy')>1993 AND to_char(hire_date, 'yyyy')<1998;

13. Afişaţi salariul minim şi maxim pentru angajatii de tip funcţionar din fiecare
departament.
select max(salary), min (salary)
from employees
where job_id like '%CLERK%'
group by department_id;

14. Eliminaţi din rezultatele de la punctul anterior job-urile cu salariul maxim sub
4000.
select min(salary), max(salary)
from employees
where job_id like'%CLERK%'
group by department_id
having max(salary)>4000;

15. Afisati numarul de angajati pentru fiecare an si luna in parte.


select COUNT(EMPLOYEE_ID), TO_CHAR(HIRE_DATE, 'mm-yyyy')
from employees
group by TO_CHAR(HIRE_DATE, 'mm-yyyy');

16. Afişaţi suma a două numere introduse la momentul execuţiei.


select &a + &b
from dual;

17. Afişaţi angajaţii cu salariul mai mare decât o valoare dată la momentul execuţiei.
select first_name, last_name, department_id, job_id // sauuuuu *
from employees
where salary>&min;

18. Afişaţi angajaţii al căror nume începe cu o literă indicată la momentul execuţiei.
select first_name
from employees
where first_name like '&n%';
19. Afişaţi departamentele în care salariul minim este mai mare decât o anumită
valoare.

select department_name, min(salary)

from employees

group by department_name

having min(salary)>&val;

19. Afişaţi ţările (country_id) în care numărul de oraşe este mai mare decât o anumită
valoare.
select country_id, count(city)
from locations
group by country_id
having count(city)>&vall;

21. Afişaţi salariul minim şi salariul maxim pentru un job indicat la momentul
execuţiei.

select job_id, min(salary), max(salary)


from employees
where job_id like '&…%';

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