Fusions de tables

Signaler

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 :

PB_Bac_05230_numerique1_TT_p111-136_C04_Groupe_Schema_10

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

Email

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 :

PB_Bac_05230_numerique1_TT_p111-136_C04_Groupe_Schema_8

III. Exemple de fonction effectuant une jointure

Voici une proposition de code :

PB_Bac_05230_numerique1_TT_p111-136_C04_Groupe_Schema_9

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