Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Introduction
LMD
Sélection de données
Projections
Restrictions
Tri et regroupements
Jointures
Sous-requêtes
Opérations ensemblistes
Modification de tuples
LDD
Création de table
Contraintes d'intégrité
Création de vues
Création d'un index
Modification de la table
LCD
Gestion d'utilisateurs
Accorder des droits
Retirer des droits
Version 2.0.3
SQL - Les opérations ensemblistes Page précédente Page suivante Retour à la page d'accueil

Les opérations ensemblistes

Les opérations ensemblistes en SQL, sont celles définies dans l'algèbre relationnelle. Elles sont réalisées grâce aux opérateurs:

  • UNION
  • INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD)
  • EXCEPT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD)
Ces opérateurs s'utilisent entre deux clauses SELECT.

L'opérateur UNION

Cet opérateur permet d'effectuer une UNION des tuples sélectionnés par deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le même schéma).

SELECT ---- FROM ---- WHERE ------

UNION

SELECT ---- FROM ---- WHERE ------

Par défaut les doublons sont automatiquement éliminés. Pour conserver les doublons, il est possible d'utiliser une clause UNION ALL.

L'opérateur INTERSECT

Cet opérateur permet d'effectuer une INTERSECTION des tuples sélectionnés par deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le même schéma).

SELECT ---- FROM ---- WHERE ------

INTERSECT

SELECT ---- FROM ---- WHERE ------

L'opérateur INTERSECT n'étant pas implémenté dans tous les SGBD, il est possible de le remplacer par des commandes usuelles:

SELECT a,b FROM table1 

WHERE EXISTS (	SELECT c,d FROM table2 

		WHERE a=c AND b=d )

L'opérateur EXCEPT

Cet opérateur permet d'effectuer une DIFFERENCE entre les tuples sélectionnés par deux clauses SELECT, c'est-à-dire sélectionner les tuples de la première table n'appartenant pas à la seconde (les deux tables devant avoir le même schéma).

SELECT a,b FROM table1 WHERE ------

EXCEPT

SELECT c,d FROM table2 WHERE ------

L'opérateur EXCEPT n'étant pas implémenté dans tous les SGBD, il est possible de le remplacer par des commandes usuelles:

SELECT a,b FROM table1 

WHERE NOT EXISTS (	SELECT c,d FROM table2 

		WHERE a=c AND b=d )


Page précédente Page suivante

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.