4.5. INTERROGERUNEBASE–LANGAGEDEMANIPULATIONDEDONNÉES :SELECT (1re PARTIE) {S7}77
4.5.2 Traduction des opérateurs de projection, sélection, produit cartésien et équi-
jointure de l’algèbre relationnelle (1re partie)
Traduction de l’opérateur de projection
L’opérateur de projection Π(A1, ...An)(relation) se traduit tout simplement en SQL par la requête :
SELECT DISTINCT A_1, ..., A_n FROM relation
DISTINCT permet de ne retenir qu’une occurrence de n-uplet dans le cas où une requête produit
plusieurs n-uplets identiques (cf. section 4.5.4).
Traduction de l’opérateur de sélection
L’opérateur de sélection σ(prédicat)(relation) se traduit tout simplement en SQL par la requête :
SELECT * FROM relation WHERE prédicat
De manière simplifiée, un prédicat est une expression logique sur des comparaisons. Reportez-vous à
la section 4.5.7 pour une description plus complète.
Traduction de l’opérateur de produit cartésien
L’opérateur de produit cartésien relation1 × relation2 se traduit en SQL par la requête :
SELECT * FROM relation_1, relation_2
Nous reviendrons sur le produit cartésien dans les sections 4.5.5 et 4.7.1.
Traduction de l’opérateur d’équi-jointure
L’opérateur d’équi-jointure relation1 A1,A2relation2 se traduit en SQL par la requête :
SELECT * FROM relation_1, relation_2 WHERE relation_1.A_1 = relation_2.A_2
Nous reviendrons sur les différents types de jointure dans la section 4.7.1.
4.5.3 Syntaxe générale de la commande SELECT
Voici la syntaxe générale d’une commande SELECT :
SELECT [ ALL | DISTINCT ] { * | expression [ AS nom_affiché ] } [, ...]
FROM nom_table [ [ AS ] alias ] [, ...]
[ WHERE prédicat ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ {UNION | INTERSECT | EXCEPT [ALL]} requête ]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
En fait l’ordre SQL SELECT est composé de 7 clauses dont 5 sont optionnelles :
SELECT : Cette clause permet de spécifier les attributs que l’on désire voir apparaître dans le résultat de
la requête (cf. section 4.5.4).
FROM : Cette clause spécifie les tables