Lorsque l’on traite de grandes quantités de données, celles-ci sont souvent réparties dans plusieurs tables. On est donc souvent amené à regrouper des données dans une nouvelle table. Cette opération s’appelle la jointure de tables.
I. Fusion de deux tables pour un même attribut
On veut fusionner deux tables selon un attribut commun. On va sélectionner dans chaque table la ligne ayant la même valeur pour l’attribut choisi.
Reprenons le tableau Table1 des fiches précédentes :
Nom |
Maths |
Anglais |
Info |
|
0 |
Joe |
16 |
17 |
18 |
1 |
Zoé |
19 |
15 |
17 |
2 |
Max |
14 |
19 |
13 |
Définissons une seconde table Table2 donnant l’âge et le courriel de certains élèves :
Nom |
Âge |
Courriel |
|
0 |
Joe |
16 |
joe@info.fr |
1 |
Zoé |
15 |
zoe@info.fr |
On voudrait regrouper les données des deux tables. Elles ont l’attribut Nom en commun. On veut obtenir la table suivante :
Nom |
Âge |
Courriel |
Maths |
Info |
Anglais |
|
0 |
Joe |
16 |
joe@info.fr |
16 |
18 |
17 |
1 |
Zoé |
15 |
zoe@info.fr |
19 |
17 |
15 |
On choisit d’exclure la ligne concernant Max car il n’est pas présent dans la seconde table.
On effectuera la jointure selon le nom avec la commande :
On utilise ici une fonction jointure définie pour l’occasion, comme celle de la page suivante.
II. La fusion de deux tables pour des attributs différents
Cependant, dans certaines tables, l’attribut commun peut avoir une autre appellation. Par exemple, la seconde table peut aussi exister sous la forme :
Name |
Age |
|
Maths |
CS |
English |
|
0 |
Joe |
16 |
joe@info.fr |
16 |
18 |
17 |
1 |
Zoé |
15 |
zoe@info.fr |
19 |
17 |
15 |
Cette fois, on précisera l’attribut de la seconde table :
III. Exemple de fonction effectuant une jointure
Voici une proposition de code :
Ligne 3 : par défaut, les clés de jointure portent le même nom.
Ligne 5 : la future table créée, vide au départ.
Ligne 8 : on ne considère que les lignes où les cellules de l’attribut choisi sont identiques.
Ligne 9 : on copie entièrement la ligne de table1.
Ligne 10 : on copie la ligne de table2 sans répéter la cellule de jointure.
À noter
En terminale, vous découvrirez la gestion des bases de données relationnelles, notamment à l’aide du langage SQL. Dans ce langage, la jointure donnée en exemple s’écrira :
SELECT Nom
FROM Table1 JOIN Table2
ON Table1.Nom = Table2.Nom