UNION, INTERSECT, EXCEPT
Combinez des ensembles de résultats compatibles avec UNION, trouvez les lignes communes avec INTERSECT et trouvez la différence avec EXCEPT.
UNION, INTERSECT, EXCEPT est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Présentation des opérations ensemblistes
Trois opérateurs ensemblistes combinent les ensembles de résultats ligne par ligne :
UNION— lignes présentes dans A OR B (sans doublons)INTERSECT— lignes présentes dans A AND BEXCEPT— lignes présentes dans A mais NOT dans B
UNION
Combinez deux ensembles de résultats en supprimant les doublons :
SELECT email FROM users
UNION
SELECT email FROM newsletter_subscribers;Compatibilité des colonnes
Les deux requêtes doivent comporter le même nombre de colonnes et des types compatibles :
-- OK:
SELECT email FROM users UNION SELECT email FROM customers;
-- ERROR — different column count:
SELECT email FROM users UNION SELECT email, name FROM customers;INTERSECT
Lignes qui apparaissent dans les deux requêtes :
SELECT product_id FROM orders WHERE user_id = 1
INTERSECT
SELECT product_id FROM orders WHERE user_id = 2;
-- Products bought by BOTH users.EXCEPT
Lignes présentes dans la première requête, mais pas dans la seconde :
SELECT product_id FROM products
EXCEPT
SELECT product_id FROM order_items;
-- Products never ordered.ORDER BY avec les opérateurs ensemblistes
ORDER BY s'applique à l'ensemble du résultat combiné. Placez-le à la fin :
SELECT email FROM users
UNION
SELECT email FROM customers
ORDER BY email;Opérateurs ensemblistes et NULL
Pour les opérations ensemblistes, deux NULL sont considérés comme égaux — UNION les déduplique et INTERSECT les met en correspondance. (C'est différent de NULL = NULL dans WHERE.)
Opérateurs ensemblistes sur des sous-requêtes
Mettez les sous-requêtes entre parenthèses pour plus de clarté et pour les combiner avec LIMIT :
(SELECT id FROM users ORDER BY created_at DESC LIMIT 10)
UNION
(SELECT id FROM users ORDER BY total DESC LIMIT 10);Priorité des opérateurs
INTERSECT a une priorité supérieure à UNION/EXCEPT. Utilisez des parenthèses :
SELECT id FROM a
UNION
SELECT id FROM b
INTERSECT
SELECT id FROM c;
-- means: a UNION (b INTERSECT c)
-- Use parens to force order:
(SELECT id FROM a UNION SELECT id FROM b) INTERSECT SELECT id FROM c;Performances
UNION effectue un tri pour éliminer les doublons. INTERSECT et EXCEPT réalisent un travail similaire. Pour les grands ensembles, préférez les approches fondées sur JOIN/EXISTS et n'utilisez les opérations ensemblistes que lorsque leur sémantique convient clairement.
SQL standard et particularités des éditeurs
Les trois opérateurs existent dans PostgreSQL. MySQL n'a ajouté INTERSECT et EXCEPT qu'à partir de la version 8.0.31 ; les anciennes versions les simulent avec JOIN/NOT IN.
Récapitulatif
Les opérateurs ensemblistes expriment OR/AND/MINUS sur des lignes.
- UNION — combiner et dédupliquer
- INTERSECT — lignes communes
- EXCEPT — A moins B
Vérification rapide
Quel opérateur ensembliste renvoie les « lignes de A qui ne sont NOT dans B » ?
Questions Fréquemment Posées
La leçon « UNION, INTERSECT, EXCEPT » est-elle gratuite ?
Oui — le texte complet de « UNION, INTERSECT, EXCEPT » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « UNION, INTERSECT, EXCEPT » ?
Combinez des ensembles de résultats compatibles avec UNION, trouvez les lignes communes avec INTERSECT et trouvez la différence avec EXCEPT. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « UNION, INTERSECT, EXCEPT » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- UNION, INTERSECT, EXCEPT
- UNION ALL contre UNION (coût de la déduplication)
- Expressions CASE et requêtes pivot
- Modèles de tableaux croisés (PostgreSQL crosstab())