C5es

18
Basi di Dati Basi di Dati Esercizi di interrogazioni complesse (I parte)

description

 

Transcript of C5es

Page 1: C5es

Basi di DatiBasi di Dati

Esercizi di interrogazioni complesse (I parte)

Page 2: C5es

DB EsamiDB EsamiS (Matr, SNome, Citta, ACorso)C (CC, CNome, CD)

FK:  CD REFERENCES D

D (CD CN Citt )S

D (CD, CNome, Citta)E (Matr, CC, Data, Voto)

FK Matr REFERENCES S

Matr SNome    Citta    Acorso

M t CC D t V tE

FK: Matr REFERENCES SFK: CC REFERENCES C

CC CN CDC

Matr CC Data    Voto 

CC CNome CD

CD CNome CittaD

CD CNome Citta

2 Esercizi di interrogazioni complesse (I parte)

Page 3: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoNumero di studenti presenti

SELECT COUNT(*)FROM S

3 Esercizi di interrogazioni complesse (I parte)

Page 4: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoNumero di studenti che hanno sostenuto almeno un esame

SELECT COUNT(DISTINCT Matr)FROM E

4 Esercizi di interrogazioni complesse (I parte)

Page 5: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoVoto medio degli esami sostenuti dalla matricola 123

SELECT AVG(Voto)FROM E WHERE Matr='123'

SELECT SUM(V )/COUNT(V )SELECT SUM(Voto)/COUNT(Voto)FROM E WHERE Matr='123'

5 Esercizi di interrogazioni complesse (I parte)

Page 6: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoVoto massimo e minimo ottenuto per ogni studente, 

l d d il C323escludendo il corso C323

SELECT M t MAX(V t ) MIN(V t )SELECT Matr,MAX(Voto),MIN(Voto)FROM EWHERE CC <> ‘C323'WHERE CC <>  C323GROUP BY Matr

6 Esercizi di interrogazioni complesse (I parte)

Page 7: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoVoto massimo e minimo ottenuto per ogni studente, i li d h il d ll dvisualizzando anche il nome dello studente

SELECT E M t S SN MAX(V t ) MIN(V t )SELECT E.Matr, S.SNome, MAX(Voto),MIN(Voto)FROM E, SWHERE S MATR = E MATRWHERE S.MATR = E.MATRGROUP BY E.Matr, S.Snome

7 Esercizi di interrogazioni complesse (I parte)

Page 8: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoCodice e nome di un corso, e relativo numero di esami 

isostenuti

SELECT C CC C CN COUNT(*)SELECT C.CC,C.CNome,COUNT(*)FROM E,CWHERE E CC=C CCWHERE E.CC=C.CCGROUP BY C.CC,C.CNome

8 Esercizi di interrogazioni complesse (I parte)

Page 9: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoNumero di esami per ogni voto compreso tra 22 e 28

SELECT Voto, COUNT(*)FROM EGROUP BY VotoHAVING V BETWEEN 22 AND 28HAVING Voto BETWEEN 22 AND 28

SELECT V t COUNT(*)SELECT Voto, COUNT(*)FROM EWHERE Voto BETWEEN 22 AND 28WHERE Voto BETWEEN 22 AND 28GROUP BY Voto

9 Esercizi di interrogazioni complesse (I parte)

Page 10: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoMedia dei voti per ogni esame sostenuto da più di due 

d istudenti

SELECT CC AVG(V t )SELECT CC,AVG(Voto)FROM EGROUP BY CCGROUP BY CCHAVING COUNT(*) > 2

10 Esercizi di interrogazioni complesse (I parte)

Page 11: C5es

DB Esami Aggregazione e raggruppamentoDB Esami – Aggregazione e raggruppamentoMatricola degli studenti che hanno sostenuto almeno due 

i lesami con lo stesso voto

SELECT M tSELECT MatrFROM EGROUP BY MatrVotoGROUP BY Matr,VotoHAVING COUNT(CC) >= 2

11 Esercizi di interrogazioni complesse (I parte)

Page 12: C5es

DB MobiliDB MobiliArticoli (Art_Cod, Cat_Cod, Art_Descrizione, Art_Prezzo, Art_IVA, 

Art Spese Trasporto)_ p _ p )FK: Cat_Cod REFERENCES Categorie

Categorie (Cat_Cod, Cat_Descrizione)Componenti (Com Cod, Com Descrizione, Com Costo, Lab Cod)Componenti (Com_Cod, Com_Descrizione, Com_Costo, Lab_Cod)

FK: Lab_Cod REFERENCES LaboratoriLaboratori (Lab_Cod, Lab_Indirizzo, Lab_Citta, Lab_Telefono)Ordini (Ord Cod Neg Cod Ord Data)Ordini (Ord_Cod, Neg_Cod, Ord_Data)

FK:  Neg_Cod REFERENCES NegoziNegozi (Neg_Cod, Neg_Nome, Neg_Indirizzo, Neg_Citta, Neg_Telefono)CompArt (Art Cod Com Cod CompArt Qta)CompArt (Art_Cod, Com_Cod, CompArt_Qta)

FK: Art_Cod REFERENCES ArticoliFK: Com_Cod REFERENCES Componenti

OrdArt (Ord Cod Art Cod OrdArt Qta)OrdArt (Ord_Cod, Art_Cod, OrdArt_Qta)FK: Ord_Cod REFERENCES OrdiniFK: Art_Cod REFERENCES Articoli

12 Esercizi di interrogazioni complesse (I parte)

Page 13: C5es

DB MobiliOrd_CodNeg_Cod

Ordini

DB Mobili g_Ord_Data

NegoziOrdArt

Articoli

Neg_CodNeg_NomeNeg_Indirizzo

Negozi Ord_CodArt_CodOrdArt_Qta

Art_CodCat_CodArt Descrizione

Articolig_Neg_CittaNeg_Telefono

_Art_PrezzoArt_IVAArt_Spese_TrasportoCat_Cod

Cat_Descrizione

Categorie

LaboratoriArt_CodCom_CodCompArt Qta

CompArt

Com Cod

Componenti

Lab_CodLab_IndirizzoLab_CittaLab Telefono

CompArt_Qta

Com_CodCom_DescrizioneCom_CostoLab_Cod

_

13 Esercizi di interrogazioni complesse (I parte)

Page 14: C5es

DB Mobili Aggregazione e raggruppamentoDB Mobili – Aggregazione e raggruppamentoLa minima e la massima quantità di articoli richiesti in un diordine

SELECT MIN(O dA t Qt ) MAX(O dA t Qt )SELECT MIN(OrdArt_Qta) , MAX(OrdArt_Qta)FROM OrdArt

14 Esercizi di interrogazioni complesse (I parte)

Page 15: C5es

DB Mobili Aggregazione e raggruppamentoDB Mobili – Aggregazione e raggruppamentoLa media dei prezzi dei componenti non prodotti in alcun l b ilaboratorio

SELECT AVG(C C t )SELECT AVG(Com_Costo)FROM ComponentiWHERE Lab Cod IS NULLWHERE Lab_Cod IS NULL

15 Esercizi di interrogazioni complesse (I parte)

Page 16: C5es

DB Mobili Aggregazione e raggruppamentoDB Mobili – Aggregazione e raggruppamentoIl prezzo più alto per ciascuna categoria 

SELECT Cat_Cod, MAX(Art_Prezzo)FROM ArticoliGROUP BY Cat_Cod

16 Esercizi di interrogazioni complesse (I parte)

Page 17: C5es

DB Mobili Aggregazione e raggruppamentoDB Mobili – Aggregazione e raggruppamentoQuanti laboratori sono presenti in ciascuna città, escludendo le i à l l b icittà con un solo laboratorio

SELECT L b Citt COUNT(L b Citt )SELECT Lab_Citta, COUNT(Lab_Citta)FROM LaboratoriGROUP BY Lab CittaGROUP BY Lab_CittaHAVING COUNT(Lab_Citta) > 1

17 Esercizi di interrogazioni complesse (I parte)

Page 18: C5es

DB Mobili Aggregazione e raggruppamentoDB Mobili – Aggregazione e raggruppamentoDa quanti componenti è composto ciascun articolo, 

id d l li i li i d l 10considerando solo gli articoli composti da almeno 10 componenti

SELECT Art_Cod, SUM(CompArt_Qta)FROM CompArtFROM CompArtGROUP BY Art_CodHAVING SUM(CompArt Qta) >= 10HAVING SUM(CompArt_Qta) >  10

18 Esercizi di interrogazioni complesse (I parte)