Partie I
SQL de base
120
© Éditions Eyrolles
Le nombre d’enregistrements résultant d’un produit cartésien est égal au produit du nombre
d’enregistrements des deux tables mises en relation.
Dans le cadre de notre exemple, le nombre d’enregistrements du produit cartésien sera de
2 pilotes x 3 avions = 6 enregistrements. Le tableau suivant décrit la requête SQL permettant
de construire le produit cartésien restreint de notre exemple. Les alias distinguent les colonnes
s’il advenait qu’il en existe de même nom entre les deux tables.
Bilan
Seules les colonnes de même type et représentant la même sémantique peuvent être comparées
à l’aide de termes ensemblistes. Il est possible d’ajouter des expressions (constantes ou
calculs) à une requête pour rendre homogènes les deux requêtes, et permettre ainsi l’utilisation
d’un opérateur ensembliste.
Parce qu’il faut utiliser NOT IN avec prudence, différentes alternatives aux opérateurs ensemblistes existent sur la base de jointures de type SQL2 (qui sont détaillées dans la prochaine
section), elles sont détaillées par Pierre Caboche et mises en ligne sur le site Web associé à
l’ouvrage.
Figure 4-10 Produit cartésien d’enregistrements de tables
AviondeAF
immat
typeAvion nbHVol
F-WTSS
Concorde
6570
F-GLFS
A320
3500
F-GTMP
A340
Pilote
brevet
nom
nbHVol
compa
PL-1
Gratien Viel
450
AF
PL-2
Richard Grin
1000
SING
PL-3
Placide Fresnais
2450
CAST
PL-4
Daniel Vielle
5000
AF
Tableau 4-33 Produit cartésien
Besoin
Requête
Quels sont les couples possibles (avion, pilote)
en considérant les avions et les pilotes de la
compagnie 'AF' ?
6 lignes extraites
SELECT p.brevet, avAF.immat
FROM
WHERE p.compa = 'AF';
+--------+--------+
| brevet | immat |
+--------+--------+
| PL-1
| F-GLFS |
| PL-1
| F-GTMP |
| PL-1
| F-WTSS |
| PL-4
| F-GLFS |
| PL-4
| F-GTMP |
| PL-4
| F-WTSS |
+--------+--------+
Web
Pilote p, AvionsdeAF avAF
Précédent

- 142/418

Suivant