altri esercizi. 1 sql dati i seguenti schemi relazionali: fornitori(fid:integer, fnome:char,...

Post on 01-May-2015

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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