- Certaines requêtes, peuvent être le résultat de la combinaison de plusieurs critères de recherche
- La combinaison de résultats est généralement réalisée à l'aide des opérations ensemblistes classiques (intersection, union…) pour exprimer «et», «ou», «non»…
- Pour alléger les formules, il est possible d'utiliser des tables intermédiaires.
- Soient r1 et r2 deux tables de schéma R.
L'union r1 U r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 ou à r2: r1∪r2=t∈r1∪t∈r2
- Soient r1 et r2 deux tables de schéma R.
L'intersection r1 ⋂ r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 et à r2: r1∩r2={t∈r1}∩{t∈r2}
- Soient r1 et r2 deux tables de schéma R.
La différence r1 - r2 est une nouvelle table de schéma R constituée de l'ensemble des enregistrements qui appartiennent à r1 mais pas à r2: r1−r2={t∈r1}−{t∈r2}
Exemples :
- Donner la liste des pays qui exportent à la fois du gaz et du pétrole :
πPaysσmatière = gaz(Exportations)∩πPaysσmatière = pétrole(Exportations) en SQL :
SELECT pays FROM Exportations WHERE matière = 'gaz' INTERSECT ( SELECT pays FROM EXPORTATIONS WHERE matière = 'pétrole');
- Donner la liste des pays qui exportent du gaz mais pas du pétrole :
πPaysσmatière = gaz(Exportations)−πPaysσmatière = pétrole(Exportations) en SQL :
SELECT pays FROM Exportations WHERE matière = 'gaz' EXCEPT ( SELECT pays FROM EXPORTATIONS WHERE matière = 'pétrole');
* Donner la liste des clients qui commandent uniquement des produits 'Moxcom' : πnom_clientClient−πnom_clientσfournisseur≠′Moxcom′Client⋈Commande en SQL :
SELECT nom_client FROM Client EXCEPT ( SELECT client FROM Client NATURAL JOIN Commande WHERE fournisseur <> 'Moxcom');
Previous : 3.2.2 Opérateurs multi-tables Up : 3.2 Interrogation des bases de données Next : Analyse des données