Operatore UNION Operatore INTERSECT Operatore EXCEPT 2007 Politecnico di 1
Operatore UNION Operatore insiemistico di unione A UNION B Esegue l unione delle due espressioni relazionali A e B le espressioni relazionali A e B possono essere generate da istruzioni SELECT richiede la compatibilità di schema tra A e B rimozione dei duplicati UNION rimuove i duplicati UNION ALL non rimuove i duplicati 2007 Politecnico di 2
UNION: esempio UNION: esempio P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma FP CodF F2 F2 F3 F4 F4 F4 P3 P4 P5 P3 P4 P5 Qta 300 200 0 200 100 100 300 0 200 200 300 0 2007 Politecnico di 3
UNION: esempio SELECT WHERE Colore='' UNION: esempio SELECT WHERE Colore='' P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma 2007 Politecnico di 4
UNION: esempio SELECT FROM FP WHERE CodF='F2' UNION: esempio FP CodF F2 F2 F3 F4 F4 F4 P3 P4 P5 P3 P4 P5 Qta 300 200 0 200 100 100 300 0 200 200 300 0 SELECT FROM FP WHERE CodF='F2' 2007 Politecnico di 5
UNION: esempio SELECT WHERE Colore='' UNION SELECT FROM FP WHERE CodF='F2'; UNION: esempio SELECT WHERE Colore='' UNION SELECT FROM FP WHERE CodF='F2'; R 2007 Politecnico di 6
UNION: esempio SELECT WHERE Colore='' UNION SELECT FROM FP WHERE CodF='F2'; Rimozione del duplicato R UNION: esempio Compatibilità di schema SELECT WHERE Colore='' UNION SELECT FROM FP WHERE CodF='F2'; 2007 Politecnico di 7
UNION ALL: esempio SELECT WHERE Colore='' UNION ALL SELECT FROM FP WHERE CodF='F2'; UNION ALL: esempio SELECT WHERE Colore='' UNION ALL SELECT FROM FP WHERE CodF='F2'; R 2007 Politecnico di 8
Operatore INTERSECT Operatore insiemistico di intersezione A INTERSECT B Esegue l intersezione delle due espressioni relazionali A e B le espressioni relazionali A e B possono essere generate da istruzioni SELECT richiede la compatibilità di schema tra A e B 2007 Politecnico di 9
INTERSECT: esempio Trovare le città che sono sia sede di fornitori, sia P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma F CodF F2 F3 F4 F5 NomeF Andrea Luca Antonio Gabriele Matteo NSoci 2 1 3 2 3 Sede Venezia INTERSECT: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Sede FROM F F CodF F2 F3 F4 F5 NomeF Andrea Luca Antonio Gabriele Matteo NSoci 2 1 3 2 3 Sede Venezia Sede Venezia 2007 Politecnico di 10
INTERSECT: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Magazzino P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma Magazzino Roma INTERSECT: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Sede FROM F INTERSECT SELECT Magazzino ; 2007 Politecnico di 11
INTERSECT: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Sede FROM F INTERSECT SELECT Magazzino ; Sede Venezia Magazzino Roma R Equivalenza con altri operatori L operazione di intersezione può essere eseguita anche mediante il join l operatore IN 2007 Politecnico di 12
Equivalenza con il join La clausola FROM contiene le relazioni interessate dall intersezione La clausola WHERE contiene condizioni di join tra gli attributi presenti nella clausola SELECT delle espressioni relazionali A e B Equivalenza con il join: esempio Trovare le città che sono sia sede di fornitori, sia 2007 Politecnico di 13
Equivalenza con il join: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Sede FROM F, P... Equivalenza con il join: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Sede FROM F, P WHERE F.Sede=P.Magazzino; 2007 Politecnico di 14
Equivalenza con l operatore IN Una delle due espressioni relazionali diviene un interrogazione nidificata mediante l operatore IN Gli attributi nella clausola SELECT esterna, uniti da un costruttore di tupla, costituiscono la parte sinistra dell operatore IN Equivalenza con IN: esempio Trovare le città che sono sia sede di fornitori, sia 2007 Politecnico di 15
Equivalenza con IN: esempio Trovare le città che sono sia sede di fornitori, sia SELECT Magazzino WHERE Magazzino IN (SELECT Sede FROM F); 2007 Politecnico di 16
Operatore EXCEPT Operatore insiemistico di differenza A EXCEPT B Sottrae l espressione relazionale B all espressione relazionale A richiede la compatibilità di schema tra A e B EXCEPT: esempio Trovare le città che sono sede di fornitori, ma non P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma F CodF F2 F3 F4 F5 NomeF Andrea Luca Antonio Gabriele Matteo NSoci 2 1 3 2 3 Sede Venezia 2007 Politecnico di 17
EXCEPT: esempio Trovare le città che sono sede di fornitori, ma non SELECT Sede FROM F F CodF F2 F3 F4 F5 NomeF Andrea Luca Antonio Gabriele Matteo NSoci 2 1 3 2 3 Sede Venezia Sede Venezia EXCEPT: esempio Trovare le città che sono sede di fornitori, ma non SELECT Magazzino P P3 P4 P5 NomeP Maglia Jeans Gonna Bermuda Colore Verde Taglia 44 42 Magazzino Roma Magazzino Roma 2007 Politecnico di 18
EXCEPT: esempio Trovare le città che sono sede di fornitori, ma non SELECT Sede FROM F EXCEPT SELECT Magazzino ; EXCEPT: esempio Trovare le città che sono sede di fornitori, ma non SELECT Sede FROM F EXCEPT SELECT Magazzino ; Sede Venezia Magazzino Roma R Venezia 2007 Politecnico di 19
Equivalenza con l operatore NOT IN L operazione di differenza può essere eseguita anche mediante l operatore NOT IN l espressione relazionale B è nidificata all interno dell operatore NOT IN gli attributi nella clausola SELECT dell espressione relazionale A, uniti da un costruttore di tupla, costituiscono la parte sinistra dell operatore NOT IN Equivalenza con l operatore NOT IN: esempio Trovare le città che sono sede di fornitori, ma non 2007 Politecnico di 20
Equivalenza con l operatore NOT IN: esempio Trovare le città che sono sede di fornitori, ma non SELECT Sede FROM F WHERE Sede NOT IN (SELECT Magazzino ); 2007 Politecnico di 21