Partie I
SQL de base
122
© Éditions Eyrolles
Nous allons principalement étudier les deux premières écritures qui sont les plus utilisées.
Nous parlerons en fin de section des deux dernières.
Jointure relationnelle
La forme la plus courante de la jointure est la jointure dite « relationnelle » (aussi appelée
SQL89), caractérisée par une seule clause FROM contenant les tables et alias à mettre en jointure deux à deux. La syntaxe générale suivante décrit une jointure relationnelle :
SELECT [alias1.]col1, [alias2.]col2…
FROM [nomBase.]nomTable1 [alias1], [nomBase.]nomTable2 [alias2]…
WHERE (conditionsDeJointure);
Cette forme est la plus utilisée, car elle est la plus simple à écrire. Un autre avantage de ce type
de jointure est qu’elle laisse le soin au SGBD d’établir la meilleure stratégie d’accès (choix du
premier index à utiliser, puis du deuxième, etc.) pour optimiser les performances.
Afin d’éviter les ambiguïtés concernant le nom des colonnes, on utilise en général des alias de
tables pour suffixer les tables dans la clause FROM et préfixer les colonnes dans les clauses
SELECT et WHERE.
Jointures SQL2
Afin de se rendre conforme à la norme SQL2, MySQL propose aussi des directives qui permettent de programmer d’une manière plus verbale les différents types de jointures :
SELECT [ALL | DISTINCT | DISTINCTROW ] listeColonnes
FROM [nomBase.]nomTable1 [{ INNER | { LEFT | RIGHT } [OUTER] }]
JOIN [nomBase.]nomTable2{ ON condition | USING ( colonne1 [, colonne2]... )}
| { CROSS JOIN | NATURAL [{ LEFT | RIGHT } [OUTER] ]
JOIN [nomBase.]nomTable2 } …
[ WHERE condition ];
Cette écriture est moins utilisée que la syntaxe relationnelle. Bien que plus concise pour des
jointures à deux tables, elle se complique pour des jointures plus complexes.
Précédent

- 144/418

Suivant