Partie I
SQL de base
140
© Éditions Eyrolles
Autres directives SQL2
Étudions enfin les autres options des jointures SQL2 (NATURAL JOIN, USING et CROSS
JOIN).
Considérons le schéma suivant (des colonnes portent le même nom). La colonne typeAv
dans la table Navigant désigne le type d’appareil sur lequel le pilote est instructeur.
Opérateur NATURAL JOIN
La jointure naturelle est programmée par la clause NATURAL JOIN. La clause de jointure est
automatiquement construite sur la base de toutes les colonnes portant le même nom entre les
deux tables.
Les concepteurs devraient ainsi penser à nommer d’une manière semblable clés primaires et
clés étrangères ! Ce principe n’est pas souvent appliqué aux bases volumineuses.
Le tableau suivant détaille deux écritures possibles d’une jointure naturelle. La clause de jointure est basée sur les colonnes (brevet, typeAv). Une clause WHERE aurait pu aussi être
progammée.
Figure 4-20 Deux tables à mettre en jointure naturelle
Navigant
brevet
nom
nbHVol typeAv
PL-1
Pierre Lamothe
450
PL-2
Didier Linxe
900
A320
PL-3
Henri Alquié
3400
A380
VolsControle
brevet typeAv
validite
PL-1
A320
2005-06-24
PL-2
A320
2006-04-04
PL-2
A330
2006-05-13
PL-3
A380
2007-07-20
PL-3
A320
2005-03-12
Tableau 4-47 Jointures naturelles
Besoin
Jointures SQL2 et résultat
Navigants qualifiés sur un type d’appareil et
instructeurs sur ce même type.
SELECT brevet, nom, typeAv, validite
FROM Naviguant
;
--équivalent à
SELECT brevet, nom, typeAv, validite
FROM VolsControle
;
NATURAL JOIN VolsControle
NATURAL JOIN Naviguant
SQL de base
140
© Éditions Eyrolles
Autres directives SQL2
Étudions enfin les autres options des jointures SQL2 (NATURAL JOIN, USING et CROSS
JOIN).
Considérons le schéma suivant (des colonnes portent le même nom). La colonne typeAv
dans la table Navigant désigne le type d’appareil sur lequel le pilote est instructeur.
Opérateur NATURAL JOIN
La jointure naturelle est programmée par la clause NATURAL JOIN. La clause de jointure est
automatiquement construite sur la base de toutes les colonnes portant le même nom entre les
deux tables.
Les concepteurs devraient ainsi penser à nommer d’une manière semblable clés primaires et
clés étrangères ! Ce principe n’est pas souvent appliqué aux bases volumineuses.
Le tableau suivant détaille deux écritures possibles d’une jointure naturelle. La clause de jointure est basée sur les colonnes (brevet, typeAv). Une clause WHERE aurait pu aussi être
progammée.
Figure 4-20 Deux tables à mettre en jointure naturelle
Navigant
brevet
nom
nbHVol typeAv
PL-1
Pierre Lamothe
450
PL-2
Didier Linxe
900
A320
PL-3
Henri Alquié
3400
A380
VolsControle
brevet typeAv
validite
PL-1
A320
2005-06-24
PL-2
A320
2006-04-04
PL-2
A330
2006-05-13
PL-3
A380
2007-07-20
PL-3
A320
2005-03-12
Tableau 4-47 Jointures naturelles
Besoin
Jointures SQL2 et résultat
Navigants qualifiés sur un type d’appareil et
instructeurs sur ce même type.
SELECT brevet, nom, typeAv, validite
FROM Naviguant
;
--équivalent à
SELECT brevet, nom, typeAv, validite
FROM VolsControle
;
NATURAL JOIN VolsControle
NATURAL JOIN Naviguant
