Resume Du TP
Resume Du TP
Resume Du TP
RESUME DU TP
Il était question pour nous de créer et modifier des tables pour la gestion des employés d'une
entreprise. Nous avons tout d'abord créer une base de données nommée tp_bd_MDD grâce a la
syntaxe create database tp_bd_MDD;
➢ Saisie du salaire 1000 pour tous les employés dont le salaire est inférieur à 900
Il était question de créer un nouveau fichier req2.sql et d'ajouter des syntaxes au script
req1.sql.
➢ Requête permettant d'afficher les informations des employés en commencant par leur
matricule
➢ Affichage sous forme d'une seule colonne des données la table EMP
select concat(EMPNO,',',ENAME,',',JOB,',',
case when MGR is null then ' ' else MGR end,
',',HIREDATE,',',SAL,',',
case when COMM is null then ' ' else COMM end,
',',DEPTNO) as THE_OUTPUT from EMP;
➢ Noms et salaires de tous les employés dont le salaire n'est pas compris entre 1500 et 2850
select ename,sal from emp where sal not between 1500 and 2850;
➢ Affichage des informations des employés embauchés entre le 20 février 1981 et le 1er mai
1981
➢ Affichage du numéro de département et les noms de tous les employés des départements
10 et 30
➢ Noms et salaires des employés gagnant plus de 1500 travaillant dans les départements 10
ou 30
➢ Noms, salaires et commissions de tous les employés qui perçoivent des commissio,s ordres
décroissant
select ename,sal,comm from emp where comm is not null and comm<>0
order by sal DESC, comm DESC;
➢ Noms de tous les employés dont le nom contient deux L et travaillant dans le département
30 ou dont le manager est 7782
select ename from emp where ename like '%l%l%' and (deptno=30 or
mgr=7782);
➢ Nom, poste et salaire de tous les ' CLERK' ou 'ANALYST' dont le salaire est différent de
$1000, $3000 ou $5000
➢ Nom, salaire et commission de tous les employés dont le montant de commission est de
plus de 10% supérieur au salaire
➢ Modification de la requête en ajoutant une colonne dans laquelle l'ancien salaire est
soustrait du nouveau salaire
➢ Affichage des données concernant les employés dont le nom se termine par un N
➢ Nom et date d'embauche de chaque employé ainsi que la date de révision du salaire qui
sera le premier lundi tombant après 6 mois d'activité
select ENAME,
concat (
dayname(HIREDATE),', the ',
dayofmonth(HIREDATE),' of ',
monthname(HIREDATE),',',
year(HIREDATE)) as HIREDATE,
case
when weekday(HIREDATE)=0 then
concat (
dayname(date_add(HIREDATE,interval 6 month)),', the ',
dayofmonth(date_add(HIREDATE,interval 6 month)),' of ',
monthname(date_add(HIREDATE,interval 6 month)),',',
year(date_add(HIREDATE,interval 6 month)))
else concat(
dayname(date_sub(date_add(date_add(HIREDATE,interval 6
month),interval 1 week),interval
weekday(date_add(date_add(HIREDATE,interval 6 month),interval
1 week)) day)),', the ',
dayofmonth(date_sub(date_add(date_add(HIREDATE,interval 6
month),interval 1 week),interval
weekday(date_add(date_add(HIREDATE,interval 6 month),interval
1 week)) day)),' of ',
monthname(date_sub(date_add(date_add(HIREDATE,interval 6
month),interval 1 week),interval
weekday(date_add(date_add(HIREDATE,interval 6 month),interval
1 week)) day)),',',
year(date_sub(date_add(date_add(HIREDATE,interval 6
month),interval 1 week),interval
weekday(date_add(date_add(HIREDATE,interval 6 month),interval
1 week)) day)))
end as REVIEW
from EMP;
➢ Requête affichant les informations suivantes pour chaque employé : <employee name>
earns <salary> monthly but wants <3 times salary> affiché dans la colonne Dream
Salaries
select ENAME,
case
when COMM is null then 'No Commission'
else COMM
end as COMM
from EMP;
➢ Matricule des différents managers et le niveau de salaire le plus bas de leurs employés
➢ Requête pour afficher le nombre total d'employés puis, parmi ces employés,ceux qui ont
été embauchés en 1980, 1981, 1982 et 1983 affichées dans les colonnes de façon
appropriée
➢ Requête pour afficher les postes, le salaire de ces postes par numéro de département et le
salaire total de ces postes incluant tous les départements affichées dans les colonnes de
façon appropriée
➢ Affichage du nom et du matricule des employés et de leur manager. Nommez les colonnes
Employee, Emp#, Manager, et Mgr#, respectivement
select ENAME,JOB,DEPTNO,SAL,
case when SAL between 700 and 1200 then 1
when SAL between 1201 and 1400 then 2
when SAL between 1401 and 2000 then 3
when SAL between 2001 and 3000 then 4
when SAL between 3001 and 9999 then 5
else null end as ECHELLON
from EMP ;
➢ Requête pour afficher le nom et la date d'embauche de tous les employés arrivés après
l'employé Blake
select e.ENAME,e.HIREDATE
from EMP e,(select HIREDATE from EMP where ENAME='BLAKE') p
where (e.HIREDATE>p.HIREDATE);
➢ Requête pour afficher le nom et la date d'embauche de tous les employés travaillant dans
le même département que Blake, à l'exclusion de Blake
➢ Requête pour afficher le matricule et le nom de tous les employés qui gagnent plus que le
salaire moyen. Trions les résultats par ordre décroissant des salaires
➢ Requête pour afficher le matricule et le nom de tous les employés qui travaillent dans le
même département que tout employé dont le nom contient un T