Académique Documents
Professionnel Documents
Culture Documents
1. Afficher les noms des pays qui appartiennent à la région nommée Americas.
2. Afficher le prénom, le nom, le nom de département des employés qui travaillent dans les
départements 80 et 40. Trier le résultat selon la colonne last_name.
3. Afficher le prénom, le nom, le numéro et le nom de département de chaque employé. Tirer
le résultat selon le numéro de département (department_id).
4. Afficher le prénom, le nom, le nom de département, la ville et la province (state_province)
pour chaque employé.
5. Afficher le nom et le prénom des employés, l’ID et le nom de département pour tous les
départements, y compris ceux qui n’ont pas d’employés.
6. Afficher le nom d’employé et le numéro du département de chaque employé des départements 10
ou 20 ou 30 avec le nom de son directeur. Trier le résultat par ordre croissant selon le numéro du
département.
1
7. Afficher le nom et le prénom ainsi l’ID et le nom de département des employés qui ont ou
n’ont pas de départements.
8. Afficher le résultat suivant pour les employés ayant un salaire >12000
9. Afficher pour les employés affectés à des départements, le nom, le prénom, le nom de poste,
le nom de département.
10. Donnez le salaire moyen du département Finance.
11. Afficher les employés qui n’ont été affectés à aucun département et les départements ou aucun
employé n’a été affecté.
12. Afficher l’ID, le nom complet (prénom et nom) des employés et le nom du pays
(country_name) ou ils travaillent.
13. Afficher le nom, le prénom, le salaire de l’employé, le nom de département et toutesles
villes (city).
14. Affichez le nom et le numéro de chaque employé ainsi que le nom et le numéro de sont
manager. Nommez les colonnes Employée, Employee, emp#, Manager et Mgr#
respectivement.
15. Afficher pour chaque département, le nom de département, le salaire moyen et lenombre
d’employés qui reçoivent des commissions dans ce département.
16. Afficher le nom du pays, la ville et les noms des départements qui s’y trouvent.
17. Afficher le nom de l’employé, le nom de poste (job_title) et la différence entre lesalaire
maximum de ce poste et le salaire de l’employé.
18. Calculer le salaire moyen des employés pour chaque nom de poste (job_title).
19. Donner le nombre d'employés pour chaque poste.
20. Afficher les numéros des départements avec leurs localisations (location_id) et leurs villes (city). On
2
affiche aussi les localisations qui ne contiennent pas des départements
21. Afficher les noms des directeurs ainsi que les noms de leurs départements comme suit :
22. Afficher le nom et la date d’embauche de tous les employés recrutés après l’employé
‘Davies’.
3
Rappel du cours
TYPES DE JOINTURE
Pour sélectionner des lignes provenant de plusieurs tables, il est nécessaire d'utiliser des
jointures dans la requête SQL. Il existe trois types de jointures :
• Jointures internes : utilisent les clauses NATURAL JOIN, USING et ON.
• Jointures externes : utilisent les clauses LEFT OUTER JOIN, RIGHT OUTER JOIN et
FULL OUTER JOIN.
• Jointure croisée : utilise la clause CROSS JOIN.
JOINTURE INTERNE
• NATURAL JOIN
La clause NATURAL JOIN est basée sur toutes les colonnes des deux tables ayant le même nom et
le même type.
• JOIN…USING
La clause JOIN…USING permet de spécifier explicitement une ou plusieurs colonnes d’équi-
jointure entre parenthèses après le mot-clé USING. Cette colonne doit avoir le même nom dans
les deux tables.
• JOIN ... ON
La clause JOIN ... ON permet de spécifier explicitement des colonnes de jointure, indépendamment
de leurs noms. C’est la jointure la plus générale et la plus utilisée.
4
SELECT e.employee_id, e.last_name, e.department_id,
d.department_id, d.location_id
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
• JOINTURES MULTIPLES
Il n'y a aucune restriction sur le nombre de tables qui peuvent être liées à l'aide des jointures.
• AUTO-JOINTURE
C’est la jointure d’une table avec elle-même comme si c’était une autre table. Ce type de requête n’est
pas si commun mais très pratique dans le cas où on veut joindre des enregistrements d'une table à
d'autres enregistrements de cette même table. Pour ce faire, il faut utiliser des alias.
SELECT e.last_name emp, m.last_name mgr
FROM employees e JOIN employees m
ON (e.manager_id = m.employee_id)
• NON EQUI-JOINTURE
Contrairement à l'équi-jointure qui consiste à opérer une jointure avec une condition d'égalité, la non
équi-jointure utilise n'importe quelle condition de jointure entre deux tables, exceptée la stricte
égalité.
JOINTURE EXTERNE
Une jointure externe permet de sélectionner les lignes ayant des correspondances entre les deux
tables jointes ainsi que les lignes n'ayant pas de correspondance dans la table à droite, ou dans la
table à gauche ou dans les deux tables jointes.
5
SELECT e.last_name, d.department_id, d.department_name
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
Cette requête retourne 106 lignes. C’est le nombre d’employés affectés aux différents départements.
Cette requête retourne 107 lignes. C’est le nombre de tous les employés même ceux qui ne sont
pas affectés aux départements.
Cette requête retourne 122 lignes. C’est le nombre de tous les départements même ceux qui ne
correspondent pas à des employés.
Cette requête retourne 123 lignes. Elles contiennent les employés affectés aux départements et ceux
non affectés ainsi que les départements qui ne correspondent pas à des employés.
JOINTURE CROISEE
La jointure croisée génère un produit cartésien entre les tables. Pour éviter le produit cartésien, il faut
que le nombre de conditions de jointure soit supérieur ou égal à N, avec N est le nombre de tables
jointes.