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

18
Altri Esercizi

Upload: immacolata-gentili

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

Altri Esercizi

Page 2: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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 $”

Page 3: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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”

Page 4: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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 ”

Page 5: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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....

Page 6: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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”

Page 7: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 8: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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”

Page 9: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 10: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

10

ER

opera

esperienza

personale

restauratore

altro personale

(1,1)

(0,N)

Page 11: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 12: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

12

SQL

select count(*)from Impiegato where Impiegato.dip=123

Page 13: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 14: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

14

SQL

Esprimere la seguente interrogazione: trovare

Page 15: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 16: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

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

Page 17: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

17

SQL

trovare i cognomi degli impiegati che partecipano a qualche progetto a partire dal 15 aprile 2005

Page 18: Altri Esercizi. 1 SQL Dati i seguenti schemi relazionali: Fornitori(fid:integer, fnome:char, indirizzo:char) Pezzi(pid:integer, pnome:char, colore:char)

18

SQL

select I.cognomefrom Impiegato I, Partecipazione Partwhere I.cod=Part.cod and part.datainizio>=15/4/05