Jointures
Vous vous attaquez maintenant au plus important chapitre de cette partie. Le principe des jointures est plutôt simple à
comprendre (quoiqu'on puisse faire des requêtes très compliquées avec), et totalement indispensable.
Les jointures vont vous permettre de jongler avec plusieurs tables dans la même requête.
Pour commencer, nous verrons le principe général des jointures. Puis, nous ferons un petit détour par les alias, qui servent
beaucoup dans les jointures (mais pas seulement). Ensuite, retour sur le sujet avec les deux types de jointures : internes et
externes. Et pour finir, après un rapide tour d'horizon des syntaxes possibles pour faire une jointure, je vous propose quelques
exercices pour mettre tout ça en pratique.
Principe des jointures et notion d'alias
Principe des jointures
Sans surprise, le principe des jointures est de joindre plusieurs tables. Pour ce faire, on utilise les informations communes des
tables.
Par exemple, lorsque nous avons ajouté dans notre base les informations sur les espèces (leur nom latin et leur description), je
vous ai dit que ce serait une très mauvaise idée de tout mettre dans la table Animal, car il nous faudrait alors répéter la même
description pour tous les chiens, la même pour toutes les tortues, etc.
Cependant, vous avez sans doute remarqué que du coup, si vous voulez afficher la description de l'espèce de Cartouche (votre
petit préféré), vous avez besoin de deux requêtes.
Étape 1 : on trouve l'id de l'espèce de Cartouche grâce à la table Animal.
Code : SQL
SELECT espece_id FROM Animal WHERE nom = 'Cartouche';
espece_id
1
Étape 2 : on trouve la description de l'espèce grâce à son id .
Code : SQL
SELECT description FROM Espece WHERE id = 1;
description
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
Ne serait-ce pas merveilleux de pouvoir faire tout ça (et plus encore) en une seule requête ?
C'est là que les jointures entrent en jeu ; on va utiliser l'information commune entre les deux tables : l'id de l'espèce, qui est
présente dans Animal avec la colonne espece_id , et dans Espece avec la colonne id .
Code : SQL
SELECT Espece.description
FROM Espece
INNER JOIN Animal
ON Espece.id = Animal.espece_id
WHERE Animal.nom = 'Cartouche';
Et voilà le travail !
Partie 2 : Index, jointures et sous-requêtes
98/414
www.openclassrooms.com
Vous vous attaquez maintenant au plus important chapitre de cette partie. Le principe des jointures est plutôt simple à
comprendre (quoiqu'on puisse faire des requêtes très compliquées avec), et totalement indispensable.
Les jointures vont vous permettre de jongler avec plusieurs tables dans la même requête.
Pour commencer, nous verrons le principe général des jointures. Puis, nous ferons un petit détour par les alias, qui servent
beaucoup dans les jointures (mais pas seulement). Ensuite, retour sur le sujet avec les deux types de jointures : internes et
externes. Et pour finir, après un rapide tour d'horizon des syntaxes possibles pour faire une jointure, je vous propose quelques
exercices pour mettre tout ça en pratique.
Principe des jointures et notion d'alias
Principe des jointures
Sans surprise, le principe des jointures est de joindre plusieurs tables. Pour ce faire, on utilise les informations communes des
tables.
Par exemple, lorsque nous avons ajouté dans notre base les informations sur les espèces (leur nom latin et leur description), je
vous ai dit que ce serait une très mauvaise idée de tout mettre dans la table Animal, car il nous faudrait alors répéter la même
description pour tous les chiens, la même pour toutes les tortues, etc.
Cependant, vous avez sans doute remarqué que du coup, si vous voulez afficher la description de l'espèce de Cartouche (votre
petit préféré), vous avez besoin de deux requêtes.
Étape 1 : on trouve l'id de l'espèce de Cartouche grâce à la table Animal.
Code : SQL
SELECT espece_id FROM Animal WHERE nom = 'Cartouche';
espece_id
1
Étape 2 : on trouve la description de l'espèce grâce à son id .
Code : SQL
SELECT description FROM Espece WHERE id = 1;
description
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
Ne serait-ce pas merveilleux de pouvoir faire tout ça (et plus encore) en une seule requête ?
C'est là que les jointures entrent en jeu ; on va utiliser l'information commune entre les deux tables : l'id de l'espèce, qui est
présente dans Animal avec la colonne espece_id , et dans Espece avec la colonne id .
Code : SQL
SELECT Espece.description
FROM Espece
INNER JOIN Animal
ON Espece.id = Animal.espece_id
WHERE Animal.nom = 'Cartouche';
Et voilà le travail !
Partie 2 : Index, jointures et sous-requêtes
98/414
www.openclassrooms.com
