SlideShare a Scribd company logo
1 of 18
Download to read offline
Basi di Dati
                           Basi di Dati

Esercizi di interrogazioni complesse (I parte)
DB Esami
DB Esami
    S (Matr, SNome, Citta, ACorso)
    C (CC, CNome, CD)
      FK:  CD REFERENCES D           S
    D (CD, CNome, Citta)
    D (CD CN        Citt )               Matr SNome    Citta    Acorso
    E (Matr, CC, Data, Voto)         E
         FK: Matr REFERENCES S
         FK Matr REFERENCES S            Matr
                                         M t CC D t V t
                                                Data    Voto 
         FK: CC REFERENCES C         C
                                         CC CN
                                            CNome CD

                                     D
                                         CD CNome Citta




2                                        Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Numero di studenti presenti

    SELECT COUNT(*)
    FROM S




3                                 Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Numero di studenti che hanno sostenuto almeno un esame

    SELECT COUNT(DISTINCT Matr)
    FROM E




4                                    Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Voto medio degli esami sostenuti dalla matricola 123

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

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




5                                       Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Voto massimo e minimo ottenuto per ogni studente, 
    escludendo il corso C323
       l d d il         C323

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




6                                     Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Voto massimo e minimo ottenuto per ogni studente, 
    visualizzando anche il nome dello studente
     i li      d     h il       d ll     d

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




7                                     Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Codice e nome di un corso, e relativo numero di esami 
    sostenuti
            i

    SELECT C.CC,C.CNome,COUNT(*)
    SELECT C CC C CN    COUNT(*)
    FROM E,C
    WHERE E.CC=C.CC
    WHERE E CC=C CC
    GROUP BY C.CC,C.CNome




8                                       Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
    Numero di esami per ogni voto compreso tra 22 e 28

    SELECT Voto, COUNT(*)
    FROM E
    GROUP BY Voto
    HAVING Voto BETWEEN 22 AND 28
    HAVING V     BETWEEN 22 AND 28

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


9                                     Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
     Media dei voti per ogni esame sostenuto da più di due 
     studenti
        d i

     SELECT CC,AVG(Voto)
     SELECT CC AVG(V t )
     FROM E
     GROUP BY CC
     GROUP BY CC
     HAVING COUNT(*) > 2




10                                       Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento
DB Esami Aggregazione e raggruppamento
     Matricola degli studenti che hanno sostenuto almeno due 
     esami con lo stesso voto
          i    l

     SELECT Matr
     SELECT M t
     FROM E
     GROUP BY Matr,Voto
     GROUP BY MatrVoto
     HAVING COUNT(CC) >= 2




11                                      Esercizi di interrogazioni complesse (I parte)
DB Mobili
DB Mobili
 Articoli (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 Laboratori
 Laboratori (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 Negozi
 Negozi (Neg_Cod, Neg_Nome, Neg_Indirizzo, Neg_Citta, Neg_Telefono)
 CompArt (Art Cod Com Cod CompArt Qta)
          (Art_Cod, Com_Cod, CompArt_Qta)
     FK: Art_Cod REFERENCES Articoli
     FK: Com_Cod REFERENCES Componenti
 OrdArt (Ord Cod Art Cod OrdArt Qta)
        (Ord_Cod, Art_Cod, OrdArt_Qta)
     FK: Ord_Cod REFERENCES Ordini
     FK: Art_Cod REFERENCES Articoli


12                                            Esercizi di interrogazioni complesse (I parte)
Ordini
                          Ord_Cod

DB Mobili
DB Mobili                 Neg_Cod
                            g_
                          Ord_Data

                       OrdArt
 Negozi                   Ord_Cod
     Neg_Cod              Art_Cod
     Neg_Nome             OrdArt_Qta
     Neg_Indirizzo
       g_
                       Articoli
     Neg_Citta
     Neg_Telefono         Art_Cod
                          Cat_Cod
                          Art_Descrizione
 Categorie                Art_Prezzo
                          Art_IVA
     Cat_Cod              Art_Spese_Trasporto
     Cat_Descrizione
                       CompArt
                          Art_Cod
 Laboratori               Com_Cod
                          CompArt_Qta
                          CompArt Qta
     Lab_Cod
     Lab_Indirizzo
                       Componenti
     Lab_Citta
     Lab_Telefono         Com_Cod
                          Com Cod
                          Com_Descrizione
                          Com_Costo
13                            Esercizi di interrogazioni complesse (I parte)
                          Lab_Cod
DB Mobili – Aggregazione e raggruppamento
DB Mobili Aggregazione e raggruppamento
     La minima e la massima quantità di articoli richiesti in un 
     ordine
       di

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




14                                         Esercizi di interrogazioni complesse (I parte)
DB Mobili – Aggregazione e raggruppamento
DB Mobili Aggregazione e raggruppamento
     La media dei prezzi dei componenti non prodotti in alcun 
     laboratorio
     l b      i

     SELECT AVG(Com_Costo)
     SELECT AVG(C   C t )
     FROM Componenti
     WHERE Lab_Cod IS NULL
     WHERE Lab Cod IS NULL




15                                       Esercizi di interrogazioni complesse (I parte)
DB Mobili – Aggregazione e raggruppamento
DB Mobili Aggregazione e raggruppamento
     Il prezzo più alto per ciascuna categoria 

     SELECT Cat_Cod, MAX(Art_Prezzo)
     FROM Articoli
     GROUP BY Cat_Cod




16                                         Esercizi di interrogazioni complesse (I parte)
DB Mobili – Aggregazione e raggruppamento
DB Mobili Aggregazione e raggruppamento
     Quanti laboratori sono presenti in ciascuna città, escludendo le 
     città con un solo laboratorio
      i à           l l b       i

     SELECT Lab_Citta, COUNT(Lab_Citta)
     SELECT L b Citt COUNT(L b Citt )
     FROM Laboratori
     GROUP BY Lab_Citta
     GROUP BY Lab Citta
     HAVING COUNT(Lab_Citta) > 1




17                                        Esercizi di interrogazioni complesse (I parte)
DB Mobili – Aggregazione e raggruppamento
DB Mobili Aggregazione e raggruppamento
     Da quanti componenti è composto ciascun articolo, 
     considerando solo gli articoli composti da almeno 10 
         id     d   l li i li              id l        10
     componenti

     SELECT Art_Cod, SUM(CompArt_Qta)
     FROM CompArt
     FROM CompArt
     GROUP BY Art_Cod
     HAVING SUM(CompArt_Qta) > 10
     HAVING SUM(CompArt Qta) >= 10




18                                       Esercizi di interrogazioni complesse (I parte)

More Related Content

Similar to C5es

Similar to C5es (14)

C4es
C4esC4es
C4es
 
C6 Sql2
C6 Sql2C6 Sql2
C6 Sql2
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
Ces
CesCes
Ces
 
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazioneSQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
 
ILIC Dejan - MSc presentation: Secure Business Computation by using Garbled C...
ILIC Dejan - MSc presentation: Secure Business Computation by using Garbled C...ILIC Dejan - MSc presentation: Secure Business Computation by using Garbled C...
ILIC Dejan - MSc presentation: Secure Business Computation by using Garbled C...
 
Algoritmi di ordinamento
Algoritmi di ordinamento Algoritmi di ordinamento
Algoritmi di ordinamento
 
C2 Ling Interrog
C2 Ling InterrogC2 Ling Interrog
C2 Ling Interrog
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Effective Code Transformations in C++
Effective Code Transformations in C++Effective Code Transformations in C++
Effective Code Transformations in C++
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA event
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Basi Di Dati 05
Basi Di Dati 05Basi Di Dati 05
Basi Di Dati 05
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

C5es

  • 1. Basi di Dati Basi di Dati Esercizi di interrogazioni complesse (I parte)
  • 2. DB Esami DB Esami S (Matr, SNome, Citta, ACorso) C (CC, CNome, CD) FK:  CD REFERENCES D S D (CD, CNome, Citta) D (CD CN Citt ) Matr SNome    Citta    Acorso E (Matr, CC, Data, Voto) E FK: Matr REFERENCES S FK Matr REFERENCES S Matr M t CC D t V t Data    Voto  FK: CC REFERENCES C C CC CN CNome CD D CD CNome Citta 2 Esercizi di interrogazioni complesse (I parte)
  • 3. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Numero di studenti presenti SELECT COUNT(*) FROM S 3 Esercizi di interrogazioni complesse (I parte)
  • 4. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Numero di studenti che hanno sostenuto almeno un esame SELECT COUNT(DISTINCT Matr) FROM E 4 Esercizi di interrogazioni complesse (I parte)
  • 5. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Voto medio degli esami sostenuti dalla matricola 123 SELECT AVG(Voto) FROM E WHERE Matr='123' SELECT SUM(Voto)/COUNT(Voto) SELECT SUM(V )/COUNT(V ) FROM E WHERE Matr='123' 5 Esercizi di interrogazioni complesse (I parte)
  • 6. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Voto massimo e minimo ottenuto per ogni studente,  escludendo il corso C323 l d d il C323 SELECT Matr,MAX(Voto),MIN(Voto) SELECT M t MAX(V t ) MIN(V t ) FROM E WHERE CC <>  C323 WHERE CC <> ‘C323' GROUP BY Matr 6 Esercizi di interrogazioni complesse (I parte)
  • 7. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Voto massimo e minimo ottenuto per ogni studente,  visualizzando anche il nome dello studente i li d h il d ll d SELECT E.Matr, S.SNome, MAX(Voto),MIN(Voto) SELECT E M t S SN MAX(V t ) MIN(V t ) FROM E, S WHERE S.MATR = E.MATR WHERE S MATR = E MATR GROUP BY E.Matr, S.Snome 7 Esercizi di interrogazioni complesse (I parte)
  • 8. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Codice e nome di un corso, e relativo numero di esami  sostenuti i SELECT C.CC,C.CNome,COUNT(*) SELECT C CC C CN COUNT(*) FROM E,C WHERE E.CC=C.CC WHERE E CC=C CC GROUP BY C.CC,C.CNome 8 Esercizi di interrogazioni complesse (I parte)
  • 9. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Numero di esami per ogni voto compreso tra 22 e 28 SELECT Voto, COUNT(*) FROM E GROUP BY Voto HAVING Voto BETWEEN 22 AND 28 HAVING V BETWEEN 22 AND 28 SELECT Voto, COUNT(*) SELECT V t COUNT(*) FROM E WHERE Voto BETWEEN 22 AND 28 WHERE Voto BETWEEN 22 AND 28 GROUP BY Voto 9 Esercizi di interrogazioni complesse (I parte)
  • 10. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Media dei voti per ogni esame sostenuto da più di due  studenti d i SELECT CC,AVG(Voto) SELECT CC AVG(V t ) FROM E GROUP BY CC GROUP BY CC HAVING COUNT(*) > 2 10 Esercizi di interrogazioni complesse (I parte)
  • 11. DB Esami – Aggregazione e raggruppamento DB Esami Aggregazione e raggruppamento Matricola degli studenti che hanno sostenuto almeno due  esami con lo stesso voto i l SELECT Matr SELECT M t FROM E GROUP BY Matr,Voto GROUP BY MatrVoto HAVING COUNT(CC) >= 2 11 Esercizi di interrogazioni complesse (I parte)
  • 12. DB Mobili DB Mobili Articoli (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 Laboratori Laboratori (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 Negozi Negozi (Neg_Cod, Neg_Nome, Neg_Indirizzo, Neg_Citta, Neg_Telefono) CompArt (Art Cod Com Cod CompArt Qta) (Art_Cod, Com_Cod, CompArt_Qta) FK: Art_Cod REFERENCES Articoli FK: Com_Cod REFERENCES Componenti OrdArt (Ord Cod Art Cod OrdArt Qta) (Ord_Cod, Art_Cod, OrdArt_Qta) FK: Ord_Cod REFERENCES Ordini FK: Art_Cod REFERENCES Articoli 12 Esercizi di interrogazioni complesse (I parte)
  • 13. Ordini Ord_Cod DB Mobili DB Mobili Neg_Cod g_ Ord_Data OrdArt Negozi Ord_Cod Neg_Cod Art_Cod Neg_Nome OrdArt_Qta Neg_Indirizzo g_ Articoli Neg_Citta Neg_Telefono Art_Cod Cat_Cod Art_Descrizione Categorie Art_Prezzo Art_IVA Cat_Cod Art_Spese_Trasporto Cat_Descrizione CompArt Art_Cod Laboratori Com_Cod CompArt_Qta CompArt Qta Lab_Cod Lab_Indirizzo Componenti Lab_Citta Lab_Telefono Com_Cod Com Cod Com_Descrizione Com_Costo 13 Esercizi di interrogazioni complesse (I parte) Lab_Cod
  • 14. DB Mobili – Aggregazione e raggruppamento DB Mobili Aggregazione e raggruppamento La minima e la massima quantità di articoli richiesti in un  ordine di SELECT MIN(OrdArt_Qta) , MAX(OrdArt_Qta) SELECT MIN(O dA t Qt ) MAX(O dA t Qt ) FROM OrdArt 14 Esercizi di interrogazioni complesse (I parte)
  • 15. DB Mobili – Aggregazione e raggruppamento DB Mobili Aggregazione e raggruppamento La media dei prezzi dei componenti non prodotti in alcun  laboratorio l b i SELECT AVG(Com_Costo) SELECT AVG(C C t ) FROM Componenti WHERE Lab_Cod IS NULL WHERE Lab Cod IS NULL 15 Esercizi di interrogazioni complesse (I parte)
  • 16. DB Mobili – Aggregazione e raggruppamento DB Mobili Aggregazione e raggruppamento Il prezzo più alto per ciascuna categoria  SELECT Cat_Cod, MAX(Art_Prezzo) FROM Articoli GROUP BY Cat_Cod 16 Esercizi di interrogazioni complesse (I parte)
  • 17. DB Mobili – Aggregazione e raggruppamento DB Mobili Aggregazione e raggruppamento Quanti laboratori sono presenti in ciascuna città, escludendo le  città con un solo laboratorio i à l l b i SELECT Lab_Citta, COUNT(Lab_Citta) SELECT L b Citt COUNT(L b Citt ) FROM Laboratori GROUP BY Lab_Citta GROUP BY Lab Citta HAVING COUNT(Lab_Citta) > 1 17 Esercizi di interrogazioni complesse (I parte)
  • 18. DB Mobili – Aggregazione e raggruppamento DB Mobili Aggregazione e raggruppamento Da quanti componenti è composto ciascun articolo,  considerando solo gli articoli composti da almeno 10  id d l li i li id l 10 componenti SELECT Art_Cod, SUM(CompArt_Qta) FROM CompArt FROM CompArt GROUP BY Art_Cod HAVING SUM(CompArt_Qta) > 10 HAVING SUM(CompArt Qta) >= 10 18 Esercizi di interrogazioni complesse (I parte)