0Pricing
SQL Academy · Lezione

UNION, INTERSECT, EXCEPT

Combini insiemi di risultati compatibili con UNION, trovi le righe comuni con INTERSECT e individui la differenza con EXCEPT

UNION, INTERSECT, EXCEPT è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.

Panoramica sulle operazioni tra insiemi

Tre operatori tra insiemi combinano i risultati riga per riga:

  • UNION — righe in A O in B (senza duplicati)
  • INTERSECT — righe in A E in B
  • EXCEPT — righe in A ma NON in B

UNION

Combina due risultati eliminando i duplicati:

SELECT email FROM users
UNION
SELECT email FROM newsletter_subscribers;

Compatibilità delle colonne

Entrambe le query devono avere lo stesso numero di colonne e tipi compatibili:

-- 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

Righe presenti in entrambe le query:

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

Righe presenti nella prima query ma non nella seconda:

SELECT product_id FROM products
EXCEPT
SELECT product_id FROM order_items;
-- Products never ordered.

ORDER BY con gli operatori tra insiemi

ORDER BY si applica all'intero risultato combinato. Lo inserisca alla fine:

SELECT email FROM users
UNION
SELECT email FROM customers
ORDER BY email;

Operatori tra insiemi e NULL

Per le operazioni tra insiemi, due NULL vengono considerati uguali: UNION li deduplica e INTERSECT li considera corrispondenti. (Diversamente da NULL = NULL in WHERE.)

Operatori tra insiemi sulle sottoquery

Racchiuda le sottoquery tra parentesi per maggiore chiarezza e per combinarle con LIMIT:

(SELECT id FROM users ORDER BY created_at DESC LIMIT 10)
UNION
(SELECT id FROM users ORDER BY total DESC LIMIT 10);

Precedenza degli operatori

INTERSECT ha una precedenza maggiore di UNION/EXCEPT. Utilizzi le parentesi:

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;

Prestazioni

UNION esegue un ordinamento per eliminare i duplicati. INTERSECT ed EXCEPT svolgono un lavoro simile. Per insiemi grandi, preferisca i pattern JOIN/EXISTS e utilizzi le operazioni tra insiemi solo quando la semantica è chiaramente appropriata.

SQL standard e peculiarità dei fornitori

Tutti e tre sono disponibili in PostgreSQL. MySQL ha aggiunto INTERSECT ed EXCEPT solo nella versione 8.0.31; le versioni precedenti li emulano con JOIN/NOT IN.

Riepilogo

Gli operatori tra insiemi esprimono OR/AND/MINUS sulle righe.

  • UNION — combina ed elimina i duplicati
  • INTERSECT — righe comuni
  • EXCEPT — A meno B

Verifica rapida

Quale operatore tra insiemi restituisce «le righe in A che NON sono in B»?

Domande Frequenti

La lezione «UNION, INTERSECT, EXCEPT» è gratuita?

Sì — il testo completo di «UNION, INTERSECT, EXCEPT» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.

Cosa imparerò in «UNION, INTERSECT, EXCEPT»?

Combini insiemi di risultati compatibili con UNION, trovi le righe comuni con INTERSECT e individui la differenza con EXCEPT Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare SQL Academy?

Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «UNION, INTERSECT, EXCEPT»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione SQL Academy?

Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. UNION, INTERSECT, EXCEPT
  2. UNION ALL rispetto a UNION (costo della deduplicazione)
  3. Espressioni CASE e query pivot
  4. Pattern crosstab (crosstab() di PostgreSQL)
← Torna a SQL Academy