• Non ci sono risultati.

Linguaggio SQL: fondamenti

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguaggio SQL: fondamenti"

Copied!
28
0
0

Testo completo

(1)

DB M G

Linguaggio SQL: fondamenti

(2)

DB M G

Operatori insiemistici

Operatore UNION

Operatore INTERSECT Operatore EXCEPT

(3)

DB M G

Operatore UNION

Operatore insiemistico di unione

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

A UNION B

(4)

DB M G

UNION: esempio

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P FP

CodF CodP Qta

F1 P1 300

F1 P2 200

F1 P3 400

F1 P4 200

F1 P5 100

F1 P6 100

F2 P1 300

F2 P2 400

F3 P2 200

F4 P3 200

F4 P4 300

F4 P5 400

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

(5)

DB M G

UNION: esempio

SELECT CodP FROM P

WHERE Colore='Rosso'

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P

CodP P1 P6

Trovare

il codice dei prodotti di colore rosso

o forniti dal fornitore F2 (o entrambe le cose)

(6)

DB M G

Trovare il

codice dei prodotti

di colore rosso o

forniti dal fornitore F2

(o entrambe le cose)

UNION: esempio

SELECT CodP FROM FP

WHERE CodF='F2'

FP

CodF CodP Qta

F1 P1 300

F1 P2 200

F1 P3 400

F1 P4 200

F1 P5 100

F1 P6 100

F2 P1 300

F2 P2 400

F3 P2 200

F4 P3 200

F4 P4 300

F4 P5 400

CodP P1 P2

(7)

DB M G

UNION: esempio

SELECT CodP FROM P

WHERE Colore='Rosso' UNION

SELECT CodP FROM FP

WHERE CodF='F2';

R

CodP P1 P2 CodP P6

P1 P2 CodP

P1 P6

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

(8)

DB M G

UNION: esempio

SELECT CodP FROM P

WHERE Colore='Rosso' UNION

SELECT CodP FROM FP

WHERE CodF='F2';

R

CodP P1 P2

Rimozione P6

del duplicato

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

(9)

DB M G

UNION: esempio

SELECT CodP FROM P

WHERE Colore='Rosso' UNION

SELECT CodP FROM FP

WHERE CodF='F2';

Compatibilità di schema

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

(10)

DB M G

UNION ALL: esempio

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

SELECT CodP FROM P

WHERE Colore='Rosso' UNION ALL

SELECT CodP FROM FP

WHERE CodF='F2';

(11)

DB M G

UNION ALL: esempio

SELECT CodP FROM P

WHERE Colore='Rosso' UNION ALL

SELECT CodP FROM FP

WHERE CodF='F2';

R

CodP P1 P1 P2 CodP P6

P1 P2 CodP

P1 P6

Trovare il codice dei prodotti di colore rosso o forniti dal fornitore F2 (o entrambe le cose)

(12)

DB M G

Operatore insiemistico di intersezione

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

Operatore INTERSECT

A INTERSECT B

(13)

DB M G

INTERSECT: esempio

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P

CodF NomeF NSoci Sede

F1 Andrea 2 Torino

F2 Luca 1 Milano

F3 Antonio 3 Milano F4 Gabriele 2 Torino F5 Matteo 3 Venezia

F

Trovare le città che sono sia sede di fornitori, sia magazzino di prodotti

(14)

DB M G

INTERSECT: esempio

SELECT Sede FROM F

Sede Torino Milano Milano Torino Venezia CodF NomeF NSoci Sede

F1 Andrea 2 Torino

F2 Luca 1 Milano

F3 Antonio 3 Milano F4 Gabriele 2 Torino F5 Matteo 3 Venezia

F

Trovare le città che sono sia sede di fornitori, sia magazzino di prodotti

(15)

DB M G

INTERSECT: esempio

SELECT Magazzino FROM P

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P

Magazzino Torino Milano

Roma Torino Milano

Torino

Trovare

le città che sono

sia sede di fornitori, sia

magazzino di prodotti

(16)

DB M G

Trovare le città che sono sia sede di fornitori, sia magazzino di prodotti

INTERSECT: esempio

SELECT Sede FROM F

INTERSECT

SELECT Magazzino FROM P;

Torino Milano

R

Sede Torino Milano Milano Torino Venezia

Magazzino Torino Milano

Roma Torino Milano

Torino

(17)

DB M G

Equivalenza con altri operatori

L’operazione di intersezione può essere eseguita anche mediante

il join

l’operatore IN

(18)

DB M G

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

(19)

DB M G

Equivalenza con il join: esempio

SELECT Sede FROM F, P

WHERE F.Sede=P.Magazzino;

Trovare le città che sono sia sede di fornitori, sia magazzino di prodotti

(20)

DB M G

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

(21)

DB M G

Equivalenza con IN: esempio

SELECT Magazzino FROM P

WHERE Magazzino IN (SELECT Sede FROM F);

Trovare le città che sono sia sede di fornitori, sia magazzino di prodotti

(22)

DB M G

Operatore EXCEPT

A EXCEPT B

Operatore insiemistico di differenza

Sottrae l’espressione relazionale B all’espressione relazionale A

richiede la compatibilità di schema tra A e B

(23)

DB M G

EXCEPT: esempio

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P

CodF NomeF NSoci Sede

F1 Andrea 2 Torino

F2 Luca 1 Milano

F3 Antonio 3 Milano F4 Gabriele 2 Torino F5 Matteo 3 Venezia

F

Trovare le città che sono sede di fornitori, ma non magazzino di prodotti

(24)

DB M G

EXCEPT: esempio

SELECT Sede FROM F

Sede Torino Milano Milano Torino Venezia CodF NomeF NSoci Sede

F1 Andrea 2 Torino

F2 Luca 1 Milano

F3 Antonio 3 Milano F4 Gabriele 2 Torino F5 Matteo 3 Venezia

F

Trovare

le città che sono sede di fornitori

, ma non magazzino di prodotti

(25)

DB M G

EXCEPT: esempio

SELECT Magazzino FROM P

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino

P2 Jeans Verde 48 Milano

P3 Camicia Blu 48 Roma

P4 Camicia Blu 44 Torino

P5 Gonna Blu 40 Milano

P6 Bermuda Rosso 42 Torino

P

Magazzino Torino Milano

Roma Torino Milano

Torino

Trovare

le città che sono

sede di fornitori, ma non

magazzino di prodotti

(26)

DB M G

EXCEPT: esempio

SELECT Sede FROM F

EXCEPT

SELECT Magazzino

FROM P; Venezia

R

Sede Torino Milano Milano Torino Venezia

Magazzino Torino Milano

Roma Torino Milano

Torino

Trovare le città che sono sede di fornitori, ma non magazzino di prodotti

(27)

DB M G

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

(28)

DB M G

Equivalenza con l’operatore NOT IN: esempio

SELECT Sede FROM F

WHERE Sede NOT IN (SELECT Magazzino FROM P);

Trovare le città che sono sede di fornitori, ma non magazzino di prodotti

Riferimenti

Documenti correlati

nome cognome Paolo Rossi Laura Verdi Mario Gialli.

Definizione dello schema di una base di dati creazione, modifica e cancellazione di tabelle. CREATE, ALTER,

Trovare tutte le informazioni sui prodotti ordinando il risultato in ordine crescente di nome e decrescente di

ESAME-SUPERATO (Matricola, CodC, Data, Voto) Per ogni anno di iscrizione, trovare la media massima (conseguita da uno studente).

CodP NomeP Colore Taglia Magazzino P1 Maglia Rosso 40 Torino. P2 Jeans Verde

Tutti i record della tabella NomeTabella che soddisfano il predicato sono modificati in base alle assegnazioni colonna=espressione nella clausola SET.. DB M G 23 Aggiornamento

definire tutti gli attributi (le colonne) della tabella definire vincoli di integrità sui dati della tabella... DB

Uso degli alias: ci possono essere delle ambiguità quando sono presenti più attributi con lo stesso nome, uno che compare in una tabella dichiarata nell’interrogazione esterna, uno