0% au considerat acest document util (0 voturi)
156 vizualizări3 pagini

Lab5 Rezolvare

Documentul conține 15 întrebări SQL care selectează și afișează date din mai multe tabele legate între ele, cum ar fi angajați, departamente, locații și joburi. Întrebările variază de la selectarea numelor, numărelor de angajați și salariilor medii pentru fiecare departament, până la afișarea numelor și joburilor angajaților care lucrează în același departament cu un angajat specificat.

Î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)
156 vizualizări3 pagini

Lab5 Rezolvare

Documentul conține 15 întrebări SQL care selectează și afișează date din mai multe tabele legate între ele, cum ar fi angajați, departamente, locații și joburi. Întrebările variază de la selectarea numelor, numărelor de angajați și salariilor medii pentru fiecare departament, până la afișarea numelor și joburilor angajaților care lucrează în același departament cu un angajat specificat.

Î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
Sunteți pe pagina 1/ 3

1. Afişaţi numele, numărul şi numele job-ului pentru toti angajaţii.

SELECT first_name,employee_id, job_title


FROM employees, jobs
WHERE employees.job_id = jobs.job_id;

2. Afişaţi numele, numărul şi numele job-ului pentru toti angajaţii cu job-ul Programmer.
SELECT first_name, department_name, job_id
FROM employees e, departments d
WHERE e.department_id = d.department_id;

3. Afişaţi numele angajaţilor, numele departamentului în care lucrează şi numele jobului.


SELECT e.first_name,e.last_name,d.department_name, j.job_title
FROM employees e, jobs j, departments d
WHERE e.department_id = d.department_id and e.job_id = j.job_id;

4. Scrieti o cerere care sa intoarca numele, numarul şi numele departamentului şi job-ul


tuturor celor care lucreaza în Seattle.
SELECT first_name,last_name,d.department_name, job_title,l.city
FROM employees e, jobs j, departments d, locations l
WHERE e.job_id = j.job_id and e.department_id=d.department_id and
d.location_id=l.location_id and l.city = 'Seattle';

5. Afişaţi toate locaţiile (oraşul şi ţara) din Europa.


SELECT l.city, c.country_name
from locations l, countries c, regions r
where l.country_id = c.country_id and c.region_id=r.region_id and r.region_name=
'Europe';

6. Afişaţi numele departamentelor din Canada.


SELECT d.department_name, c.country_name, l.country_id
from departments d, locations l, countries c
WHERE d.location_id = l.location_id and c.country_name = 'Canada' and
l.country_id =c.country_id;

7. Afişaţi numele departamentelor, numărul de angajaţi şi salariul mediu pentru fiecare


departament.

SELECT department_name, COUNT(employee_id), avg(salary)


FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY department_name, e.department_id;

8. Gasiti care sunt numele acelor departamente în care salariul maxim este mai mare dacat
10000.
SELECT department_name, max(salary)
FROM employees e, departments d
WHERE e.department_id = d.department_id
group by department_name
having max(salary)>10000;

9. Afisati numarul de tari care sunt inregistrate pentru fiecare regiune.


SELECT region_name, count (country_id)
from countries c, regions r
where c.region_id = r.region_id
group by region_name;

10. Afisati numele job-urilor, salariul mediu pentru fiecare si nr de angajati pentru joburile
de vanzari (Sales).
SELECT job_title, avg(salary), count(employee_id)
from jobs j, employees e
where j.job_id = e.job_id and job_title like '%Sales%'
group by job_title;

11. Scrieţi o interogare care afişează numele şi job-ul angajaţilor care lucrează în acelaşi
departament cu angajatul cu numele Luis Popp.
SELECT e1.first_name || e1.last_name, job_title
from employees e, jobs j, employees e1
Where e.job_id = j.job_id and e.first_name like '%Luis%' and e.last_name Like
'%Popp%' and e.department_id=e1.department_id;

12. Scrieti o interogare care sa afiseze numele şi identificatorii angajatilor precum şi numele
şi identificatorul managerului caruia ii este subordonat fiecare. Etichetati coloanele
astfel: "Angajat"," Marca_ang"," Manager", " Marca_man". Salvati interogarea intr-un
script.
SELECT ang.employee_id , man.first_name as Angajat, man.employee_id,
man.first_name as manager
from employees ang, employees man
Where ang.manager_id = man.manager_id;

13. Gasiti numele şi salariul fiecarui angajat care este subordonat managerului cu numele
King.
14. Creaţi o interogare care are ca rezultat afişarea locaţiei (id şi oraş) şi a numelui
departamentelor. Includeţi toate locaţiile, chiar dacă nu există niciun departament
corespunzător.

select d.department_name, d.location_id, l.city

from departments d, locations l

where d.location_id = l.location_id(+);

15. Creaţi o interogare care afişează numele ţărilor şi oraşelor. Includeţi toate ţările, chiar dacă
nu există niciun oraş corespunzător în tabelul locations.

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