* 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. **Union** * 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 \cup r2 = { t ∈ r1} \cup { t ∈ r2}$$ **Intersection** * 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 \cap r2 = \{ t ∈ r1\} \cap \{ t ∈ r2\}$$ **Différence ** * 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 : $$\pi _{Pays} σ_\text{matière = gaz} (\text{Exportations}) \cap \pi _{Pays} σ_\text{matière = pétrole} (\text{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 : $$\pi _{Pays} σ_\text{matière = gaz} (\text{Exportations}) - \pi _{Pays} σ_\text{matière = pétrole} (\text{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' : $$\pi_{nom\_client}Client - \pi_{nom\_client} \sigma_{fournisseur \neq 'Moxcom'} Client ⋈ Commande$$ en SQL : SELECT nom_client FROM Client EXCEPT ( SELECT client FROM Client NATURAL JOIN Commande WHERE fournisseur <> 'Moxcom'); __Previous__ : [[public:STD-3:CM2:Interrogation des bases de données:3.2.2 Opérateurs multi-tables]] __Up__ : 3.2 [[public:STD-3:CM2:Interrogation des bases de données]] __Next__ : [[public:STD-3:CM2:Interrogation des bases de données:Analyse des données]]