vuoi
o PayPal
tutte le volte che vuoi
SQL
select I.mid
from Imbarco I, Nave N
where I.nid=N.nid and
N.colore=“rosso” and
N.colore=“blu”
...Ma NON è una risposta corretta: la sua
risposta è sempre vuota. Questa query
seleziona le navi sia rosse che blu.... 5
SQL
risposta corretta
select I.mid
from Imbarco I, Nave N1, Nave N2
where I.nid=N1.nid and
I.nid=N2.nid and
N1.colore=“rosso” and
N2.colore=“blu” 6
SQL
Si consideri il seguente schema relazionale:
Impiegato(cod:int, nome:char,
cognome: char, dip:int, stipendio: int)
Dipartimento(dip:integer,nomedip:char,
sede:char)
trovare i nomi e cognomi di tutti gli impiegati
con cognomi uguali ma nomi diversi che
lavorano nel dipartimento Produzione 7
SQL
select I1.nome, I1.cognome
from Impiegato I1, Impiegato I2, Dipartimento D
where I1.dip=D.dip and
I1.cognome=I2.cognome and
I1.nome <> I2.nome and
D.nomedip=“Produzione” 8
ER
Esprimere con uno schema ER le seguenti
specifiche:
il database di un museo contiene informazioni
riguardo alle opere d’arte attualmente ospitate in
tale museo ed informazioni relative al personale:
1 opera ha identificativo (che la identifica
Ogni
unvocamente), il tipo (ad es. pittura, scultura…), lo
stile e l’autore.
2 Ogni individuo che lavora al museo ha codice
fiscale, nome, indirizzo e salario.
3 Alcuni membri del personale del museo sono
restauratori.
4 Ogni restauratore è esperto di un solo tipo di
opera.
Esistono opere di cui nessun restauratore è esperto
9
ER personale
(0,N)
opera esperienza (1,1)
restauratore
altro personale
10
SQL
Con riferimento allo schema relazionale
Impiegato(nome:char, cognome: char,
dip:int,stip:int)
vogliamo sapere quanti impiegati lavorano nel
dipartimento avente codice identificativo uguale a
123 11
SQL
select count(*)
from Impiegato
where Impiegato.dip=123 12
SQL
sempre tenendo conto degli schemi relazionali
relativi agli impiegati ed ai dipartimenti, trovare la
somma degli stipendi di tutti gli impiegati dello
stesso dipartimento
select I.dip, sum(I.stipendio)
from Impiegato I
group by I.dip 13
SQL
Esprimere la seguente interrogazione:
trovare 14
SQL
Oltre alle tabelle Impiegato e Dipartimento, si
consideri la tabella
Progetto(codice:int, nome:char, budget:real)
e la tabella
Partecipazione(cod:int,codice:int,datainizio:date)
Gli attributi cod e codice sono chiavi esterne delle
tabelle Impiegato e Progetto
trovare i cognomi degli impiegati che partecipano al
progetto “WebDB” dal 15 aprile 2005 15
SQL
select I.cognome
from Impiegato I, Progetto P, Partecipazione Part
where I.cod=Part.cod and P.codice=Part.codice and
P.nome=‘WebDB’ and part.datainizio>=15/4/05 16
SQL
trovare i cognomi degli impiegati che
partecipano a qualche progetto a partire dal
15 aprile 2005 17