altri esercizi. 1 sql dati i seguenti schemi relazionali: fornitori(fid:integer, fnome:char,...
Post on 01-May-2015
215 Views
Preview:
TRANSCRIPT
Altri Esercizi
2
SQL
Dati i seguenti schemi relazionali:
Fornitori(fid:integer, fnome:char, indirizzo:char)Pezzi(pid:integer, pnome:char, colore:char)Catalogo(fid:integer, pid:integer, prezzo:real)
esprimere in SQL la seguente interrogazione:a “Trovare i nomi dei pezzi forniti da Rossi con prezzo maggiore a 15.5 $”
3
SQL
select P.pnomefrom Pezzi P, Catalogo C, Fornitori Fwhere C.fid=F.fid and
P.pid=C.pid and C.prezzo>15.5 and F.fnome=“Rossi”
oppure
select p.pnomefrom Pezzi P natural join Catalogo C
natural join Fornitori Fwhere C.prezzo>15.5 and F.fnome=“Rossi”
4
SQL
Dati i seguenti schemi relazionali:
Nave(nid:integer, nnome:char, colore:char)Marinaio(mid:integer, mnome:char, età:integer)Imbarco(nid:integer, mid:integer, data:date)
Esprimere in SQL:“Trovare gli identificativi dei marinai con imbarchi su navi rosse e su navi blu ”
5
SQL
select I.midfrom Imbarco I, Nave Nwhere 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....
6
SQL
risposta corretta
select I.midfrom Imbarco I, Nave N1, Nave N2where I.nid=N1.nid and
I.nid=N2.nid and N1.colore=“rosso” andN2.colore=“blu”
7
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
8
SQL
select I1.nome, I1.cognomefrom Impiegato I1, Impiegato I2, Dipartimento D
where I1.dip=D.dip andI1.cognome=I2.cognome and I1.nome <> I2.nome andD.nomedip=“Produzione”
9
EREsprimere 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 Ogni opera ha identificativo (che la identifica 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
10
ER
opera
esperienza
personale
restauratore
altro personale
(1,1)
(0,N)
11
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
12
SQL
select count(*)from Impiegato where Impiegato.dip=123
13
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 Igroup by I.dip
14
SQL
Esprimere la seguente interrogazione: trovare
15
SQLOltre alle tabelle Impiegato e Dipartimento, si consideri la tabella
Progetto(codice:int, nome:char, budget:real)
e la tabellaPartecipazione(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
16
SQL
select I.cognomefrom Impiegato I, Progetto P, Partecipazione Partwhere I.cod=Part.cod and P.codice=Part.codice andP.nome=‘WebDB’ and part.datainizio>=15/4/05
17
SQL
trovare i cognomi degli impiegati che partecipano a qualche progetto a partire dal 15 aprile 2005
18
SQL
select I.cognomefrom Impiegato I, Partecipazione Partwhere I.cod=Part.cod and part.datainizio>=15/4/05
top related