Soit les tables suivant d'une gestion d'une entreprise :
* Employees
* Deparments
* Locations
* Job_grades
Exprimer en SQL les requestes suivantes en utilisant les jointures :
1-Creer la table "employees"
Create Table employees(
Employee_id int auto_increment primary key ,
Nom_ Employee Varchar(45),
Id_dept Int Unsigned ,
Id_ job Int Unsigned ,
Adresse Varchar(200),
Phone_nb Char(8),
foreign key (Num_Deparments) references Deparments (Num_Deparments),
foreign key (id_job) references job_Grades (id_job)
);
2-Ajoute un nouveu employe "Anthont Saadeh" qui est embauche aujourd'hui
Insert into employees (first_name , last_name ,Date_embauche)
values(‘Anthony’,’Saadeh’,curdate());
To delete
Delete from employees
Where prenom=”anthony’ and nom = ‘Saadeg’;
Drop table employees;
3-Afficher le nom, le salaure et le commission des employes qui ne percoivent pas de
commission
Select nom,salaire,commission
from employees
where commission is null;
4-Afficher le nom , le saire et la commission des employes qui recoivent une commission et
trier les donnees par order decroissant de salaire et par orfre decroissant de commissiom.
Select nom,salaire,commission
from employees
where commission is not null order by salaire desc,commission desc;
5-Afficher le nom, la fonction et la date d’embauche les cinq les plus anciens de
l’entreprise:
Select nom,salary,date_embauche
from employees
order by date_embauche limit 5;
6-Afficher le nom le salaire et la function des employee qui gagnent autant que l’employe
“fadi”.
Select last_name,salary,job_id
From employees e
where salary = (select salary from employees f where last_name=’fadi’ ) and e.employees_id < >
f.employees_id;
7-Afficher le nom,le numero de department,la function et la date_embauche de tous les
employees qui travaillent dans la localite (location_id) 1700 .
Mettre la date_embauche sous forme “Jeudi 12 April 2024”.
SELECT nom, id_dept, id_job, date_embauche
Date_format (date_embauche, “%W%e%M%Y”) as “date_embauche”
FROM employees
WHERE id_dept = (
SELECT id_dept FROM departments
WHERE location_id = (
SELECT location_id FROM locations WHERE location_id = 1700 ));
8-Afficher le nom et le salaire de l’employee le mieux paye.
SELECT nom, salaire
FROM employees
WHERE salaire = (SELECT MAX(salaire) FROM employees);
9-Afficher le nom,la fonction et le salaire des employees non programmeurs qui gagnent
plus qu’un programmeur (IT_PROG).
SELECT nom, job_id, salaire
FROM employees
WHERE job_id <> 'IT_PROG'
AND salaire > (SELECT MAX(salaire) FROM employees WHERE function = 'IT_PROG');
10- Afficher le nom,la fonction et le salaire des employees non programmeurs qui gagnent
plus que tous les programmeurs.
SELECT nom, job_id, salaire
FROM employees
WHERE job_id <> 'IT_PROG'
AND salaire > ALL (SELECT salaire FROM employees WHERE job_id = 'IT_PROG');
11-Afficher le nom et la date embauche des employees qui sont embuches a la meme annee
que “Davies”.
SELECT nom, date_embauche
FROM employees
WHERE YEAR(date_embauche) = (
SELECT YEAR(date_embauche) FROM employees WHERE nom = 'Davies'
);
12-Afficher le nom et la remuneration totale de tous les employees.
SELECT nom, (salaire + commission) AS remuneration
FROM employees;
13-Afficher la somme totale des salaires payes pour chaque groupe fonction des employees.
SELECT job_id, SUM(salaire) AS total_salaire
FROM employees
GROUP BY job_id;