TP SQL
Zaid Harboul
3IIR-GR5
1. Lister les départements distincts triés par ordre alphabétique :
SELECT DISTINCT department_name FROM departments ORDER BY
department_name;
2. Afficher le nom et le poste de tous les employés :
SELECT first_name, last_name, job_title FROM employees;
3. Afficher les employés dont le salaire est supérieur à 3000 :
SELECT first_name, last_name, salary FROM employees WHERE salary >
3000;
4. Afficher les noms et salaires des employés, et calculer leur salaire annuel :
SELECT first_name, last_name, salary, salary * 12 AS annual_salary
FROM employees;
5. Afficher le nombre d'employés par département :
SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP
BY department_id;
6. Lister les employés avec leur prénom, nom et le nombre d'années dans
l'entreprise :
SELECT first_name, last_name, FLOOR(MONTHS_BETWEEN(SYSDATE,
hire_date) / 12) AS years_with_company FROM employees;
7. Afficher le nom des employés et le nom de leur manager :
SELECT e.first_name || ' ' || e.last_name AS employee, m.first_name
|| ' ' || m.last_name AS manager FROM employees e LEFT JOIN employees
m ON e.manager_id = m.employee_id;
8. Afficher tous les employés dans le même département que Lindsey Smith :
SELECT first_name, last_name FROM employees WHERE department_id =
(SELECT department_id FROM employees WHERE first_name = 'Lindsey' AND
last_name = 'Smith');
9. Lister les employés embauchés avant la date d'embauche la plus ancienne du
département 30 :
SELECT first_name, last_name FROM employees WHERE hire_date < (SELECT
MIN(hire_date) FROM employees WHERE department_id = 30);
10. Lister les départements ayant plus de 3 employés avec un salaire supérieur à
2500 :
SELECT department_id, COUNT(*) AS high_salary_count FROM employees
WHERE salary > 2500 GROUP BY department_id HAVING COUNT(*) > 3;
11. Lister les employés ayant changé de poste au moins une fois, avec le nombre de
changements :
SELECT employee_id, COUNT(DISTINCT job_id) - 1 AS job_changes FROM
job_history GROUP BY employee_id HAVING COUNT(DISTINCT job_id) > 1;