Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


3.3-SQL-SelectNidificate, Slide di Basi di Dati

Il corso descrive i sistemi per la gestione di basi di dati, considerando sia le metodologie di progettazione di basi di dati, sia lo sviluppo di applicazioni di interrogazione e gestione di basi di dati. L'attivita' di laboratorio permette di sperimentare l'uso dei prodotti commerciali piu' diffusi.

Tipologia: Slide

2011/2012

Caricato il 03/07/2012

lucanius
lucanius 🇮🇹

14 documenti

1 / 217

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Linguaggio SQL: fondamenti
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica 3.3-SQL-SelectNidificate e più Slide in PDF di Basi di Dati solo su Docsity!

Linguaggio SQL: fondamenti

Interrogazioni nidificate

Introduzione

Operatore IN

Operatore NOT IN

Costruttore di tupla

Operatore EXISTS

Operatore NOT EXISTS

Correlazione tra interrogazioni

Operazione di divisione

Table functions

Introduzione

Un'interrogazione nidificata è un'istruzione

SELECT contenuta all'interno di un'altra

interrogazione

la nidificazione di interrogazioni permette di

suddividere un problema complesso in

sottoproblemi più semplici

È possibile introdurre istruzioni SELECT

in un predicato nella clausola WHERE

in un predicato nella clausola HAVING

nella clausola FROM

DB forniture prodotti (1/2)

P (CodP, NomeP, Colore, Taglia, Magazzino)

F (CodF, NomeF, NSoci, Sede)

FP (CodF, CodP, Qta)

Interrogazioni nidificate (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

Interrogazioni nidificate (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

La formulazione mediante interrogazioni

nidificate consente di separare il problema

in due sottoproblemi

sede del fornitore F

codici dei fornitori con la stessa sede

Interrogazioni nidificate (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE CodF='F1');

Interrogazioni nidificate (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE CodF='F1');

È possibile utilizzare '=' esclusivamente se

è noto a priori che il risultato della SELECT

nidificata è sempre un solo valore

Formulazione equivalente

La formulazione equivalente con il join è

caratterizzata da

Clausola FROM contenente le tabelle

referenziate nelle FROM di tutte le SELECT

Opportune condizioni di join nella clausola

WHERE

Eventuali predicati di selezione aggiunti

nella clausola WHERE

Clausola FROM (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE CodF='F1');

Clausola FROM (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT ...

FROM F AS FX, F AS FY

Condizione di join (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE CodF='F1');

Predicato di selezione (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE CodF='F1');

Predicato di selezione (n.1)

Trovare il codice dei fornitori che hanno

sede nella stessa città di F

SELECT ...

FROM F AS FX, F AS FY

WHERE FX.Sede=FY.Sede AND FX.CodF='F1';