Linguaggio SQL: Principali operatori insiemistici
Il codice SQL è regolato da una sintassi chiara e ben definita. Per poter eseguire delle query, essa richiede che tutte le specifiche necessarie all’esecuzione del comando vengano rispettate.
Come abbiamo detto, una query può essere composta da più o meno clausole a seconda delle necessità, ma tutte devono seguire rigidi vincoli costruttivi, pena l’esecuzione errata della richiesta.
In alcune occasioni però l’utente può voler utilizzare dei risultati derivanti dal confronto o dall’unione di più tabelle: questo richiede l’utilizzo di due query diverse e l’utilizzo di un operatore che le colleghi tra loro, specificando la funzione da applicare. Tale insieme di operatori vengono detti insiemistici.
Questi operatori sono di facile implementazione, e sebbene richiedano la scrittura di due query il risultato finale è di grande interesse; l’unico importante requisito affinchè il risultato sia corretto è che i dati che si richiede vengano confrontati siano tra loro compatibili. La struttura globale per questi operatori è mostrata in figura seguente.
Questi operatori vanno inseriti al livello esterno del codice,ovvero alla fine della prima query e prima dell’inizio della seconda e, a seconda del tipo di operatore, si possono avere i seguenti risultati:
- UNION: calcola il risultato dell’unione di due tabelle, eliminando eventuali risultati duplicati;
- EXCEPT o MINUS: calcola il risultato dell’unione di due tabelle evidenziando i valori che rispettano i vincoli esclusivi della prima query e non della seconda;
- INTERSECT: calcola il risultato dell’unione di due tabelle evidenziando i valori che rispettano i vincoli esclusivi di entrambe le query interrogative.
Tutti questi operatori non tengono conto di risultati duplicati, e per questo li eliminano; volendo, è possibile conservare i risultati duplicati aggiungendo al termine degli operatori sopra citati la parola chiave ALL.