SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Basi di Dati

Esercizi di interrogazioni in SQL
Database Esami
    Il Database Esami rappresenta la situazione di Studenti, 
    Corsi, Docenti ed Esami:

                                      S
    S (Matr, SNome, Citta, ACorso)
                                          Matr SNome    Citta    Acorso
    C (CC, CNome, CD)
      FK:  CD REFERENCES D           E
                                          Matr CC Data    Voto 
    D (CD, CNome, Citta)
    E (Matr, CC, Data, Voto)          C
                                          CC CNome CD
      FK: Matr REFERENCES S
      FK: CC REFERENCES C            D
                                          CD CNome Citta



2                                               Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Selezionare …
     Studenti del secondo anno di corso

     SELECT *
     FROM  S
     WHERE ACorso=2




3                                         Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Esami con voto compreso tra 24 e 28 

    SELECT *
    FROM E
    WHERE Voto >= 24
    AND Voto <= 28

    SELECT *
    FROM E
    WHERE Voto BETWEEN 24 AND 28



4                                          Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Studenti il cui nome inizia con G

    SELECT *
    FROM S
    WHERE SNome LIKE 'G%'




5                                       Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Studenti con l'attributo città non specificato 

    SELECT *
    FROM S
    WHERE Citta IS NULL




6                                                     Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Per ogni esame con voto superiore a 24 riportare il nome dello 
    studente e il codice del docente del corso 

    SELECT S.SNome, C.CD
    FROM S,E,C
    WHERE S.Matr=E.Matr
    AND E.CC=C.CC
    AND Voto > 24




7                                               Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Coppie di studenti residenti nella stessa città

    SELECT S1.Matr,S2.Matr
    FROM S S1, S S2
    WHERE S1.Citta = S2.Citta
    AND S1.Matr < S2.Matr




8                                                     Esercizi di interrogazioni in SQL
Database Esami – interrogazioni semplici
    Matricole degli studenti che hanno sostenuto almeno uno 
    degli esami sostenuti dallo studente di nome 'PAOLA'

    SELECT E1.Matr
    FROM S, E E1, E E2
    WHERE E2.Matr = S.Matr
    AND E1.CC = E2.CC
    AND S.SNome= 'PAOLA'




9                                             Esercizi di interrogazioni in SQL
Videonoleggio DVD
 Si supponga di voler costruire un database per la gestione dei 
 noleggi di DVD di un negozio. Tale database, in una versione del 
 tutto semplicistica ed irreale, potrebbe essere rappresentato dalle 
 tabelle clienti, dvd e noleggi:
     tabella clienti, relativa ai clienti del videonoleggio e contenente 
     informazioni quali il numero di tessera, il nome, il cognome (tutti 
     obbligatori) ed il numero di telefono.
     tabella dvd, relativa ai dvd in possesso del videonoleggio (si assuma per 
     semplicità che le copie di ogni dvd siano illimitate, e che quindi più 
     clienti possano prendere a noleggio copie diverse di uno stesso dvd 
     contemporaneamente). Per ogni dvd la tabella tiene traccia del codice 
     (obbligatorio), del titolo, del regista, del voto della critica (da 1 a 10) e 
     della trama.
     tabella noleggi, relativa ai noleggi di dvd in atto in quel momento. In 
     particolare, la tabella tiene traccia del codice del dvd noleggiato, del 
     numero di tessera del cliente che sta effettuando il noleggio e della data 
     in cui il cliente ha iniziato il noleggio.


10                                                          Esercizi di interrogazioni in SQL
Videonoleggio DVD
 Traducendo la realtà relativa al videonoleggio con i 
 costrutti del modello relazionale si ottiene:
     CLIENTI (TESSERA, NOME, COGNOME, TELEFONO)
     DVD (CODICE, TITOLO, REGISTA, VOTO, TRAMA)
     NOLEGGI (CODICE_DVD, TESSERA, DATA_NOLEGGIO)


 Gli attributi sottolineati rappresentano la chiave primaria 
 di ciascuna tabella




11                                          Esercizi di interrogazioni in SQL
Videonoleggio DVD
 CREATE TABLE CLIENTI (
       TESSERA CHAR(5) NOT NULL,
       NOME VARCHAR(60) NOT NULL,
       COGNOME VARCHAR(60) NOT NULL,
       TELEFONO VARCHAR(20),
       PRIMARY KEY (TESSERA)
   );

 CREATE TABLE DVD (
       CODICE CHAR(5) NOT NULL,
       TITOLO VARCHAR(60),
       REGISTA VARCHAR(60),
       VOTO INT CHECK (VOTO BETWEEN 1 AND 10),
       TRAMA VARCHAR(200),
       PRIMARY KEY (CODICE)
   );


12                                               Esercizi di interrogazioni in SQL
Videonoleggio DVD
     CREATE TABLE NOLEGGI (
        CODICE_DVD CHAR(5) NOT NULL REFERENCES DVD(CODICE),
        TESSERA CHAR(5) NOT NULL REFERENCES CLIENTI(TESSERA),
        DATA_NOLEGGIO DATE,
        PRIMARY KEY (CODICE_DVD,TESSERA)
     );




13                                          Esercizi di interrogazioni in SQL
Videonoleggio DVD
 Popolare le tabelle create seguendo la traccia indicata di 
 seguito:
     Provare ad inserire almeno un record “non valido” (che va 
     contro la definizione del vincolo espresso in fase di definizione 
     della tabella) per i vincoli di ciascuna tabella
     Inserire alcuni record “validi” e consistenti per ogni tabella 
     (prevedendo anche la possibilità di valori nulli)
     Aggiornare, aumentando di 3 unità il voto, il record della 
     tabella DVD relativo al codice ‘12345’




14                                                 Esercizi di interrogazioni in SQL
Videonoleggio DVD
 INSERT INTO CLIENTI
   VALUES (‘00001’,’Carlo’, ‘Rossi’, ‘+390596606633’)
   ...
 INSERT INTO DVD
   VALUES (‘00001’,‘Braveheart’,‘M.Gibson’,8, ‘William Wallace 
   unites the 13th Century Scots in their battle to overthrow 
   English rule’)
   ...
 UPDATE DVD
   SET VOTO = VOTO + 3
   WHERE CODICE = ‘12345’


15                                             Esercizi di interrogazioni in SQL
Videonoleggio DVD
 Formulare le seguenti interrogazioni:
     “Elenco dei DVD (distinti) che hanno un voto maggiore di 5”
     “Telefono dei clienti di nome ‘Carlo’”
     “Codici DVD noleggiati da clienti con tessere (‘00001’, ‘00002’, 
     ‘00003’, ‘00004’)”




16                                                 Esercizi di interrogazioni in SQL
Videonoleggio DVD
 SELECT CODICE
   FROM DVD
   WHERE VOTO>5

 SELECT TELEFONO
   FROM CLIENTI
   WHERE NOME=‘Carlo’

 SELECT CODICE_DVD
   FROM NOLEGGI
   WHERE TESSERA IN (‘00001’,‘000002’,‘000003’,‘000004’)


17                                           Esercizi di interrogazioni in SQL

Contenu connexe

Similaire à C4es

Query Processor & Statistics: A Performance Primer
Query Processor & Statistics: A Performance PrimerQuery Processor & Statistics: A Performance Primer
Query Processor & Statistics: A Performance PrimerDavide Mauri
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1guest5c2d35b
 
Presentazione Nuvola Vertica Full
Presentazione Nuvola Vertica FullPresentazione Nuvola Vertica Full
Presentazione Nuvola Vertica FullAlberto.F
 
Presentazione Nuvola Vertica F
Presentazione Nuvola Vertica FPresentazione Nuvola Vertica F
Presentazione Nuvola Vertica FAlberto.F
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Alberto.F
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Alberto.F
 
Presentazione Nuvola Vertica Full New
Presentazione Nuvola Vertica Full NewPresentazione Nuvola Vertica Full New
Presentazione Nuvola Vertica Full NewAlberto.F
 

Similaire à C4es (8)

Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
Query Processor & Statistics: A Performance Primer
Query Processor & Statistics: A Performance PrimerQuery Processor & Statistics: A Performance Primer
Query Processor & Statistics: A Performance Primer
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1
 
Presentazione Nuvola Vertica Full
Presentazione Nuvola Vertica FullPresentazione Nuvola Vertica Full
Presentazione Nuvola Vertica Full
 
Presentazione Nuvola Vertica F
Presentazione Nuvola Vertica FPresentazione Nuvola Vertica F
Presentazione Nuvola Vertica F
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1
 
Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1Presentazione Nuvola Vertica Full New1
Presentazione Nuvola Vertica Full New1
 
Presentazione Nuvola Vertica Full New
Presentazione Nuvola Vertica Full NewPresentazione Nuvola Vertica Full New
Presentazione Nuvola Vertica Full New
 

Plus de 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
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 

Plus de 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
 
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
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 

C4es

  • 2. Database Esami Il Database Esami rappresenta la situazione di Studenti,  Corsi, Docenti ed Esami: S S (Matr, SNome, Citta, ACorso) Matr SNome    Citta    Acorso C (CC, CNome, CD) FK:  CD REFERENCES D E Matr CC Data    Voto  D (CD, CNome, Citta) E (Matr, CC, Data, Voto) C CC CNome CD FK: Matr REFERENCES S FK: CC REFERENCES C D CD CNome Citta 2 Esercizi di interrogazioni in SQL
  • 3. Database Esami – interrogazioni semplici Selezionare … Studenti del secondo anno di corso SELECT * FROM  S WHERE ACorso=2 3 Esercizi di interrogazioni in SQL
  • 4. Database Esami – interrogazioni semplici Esami con voto compreso tra 24 e 28  SELECT * FROM E WHERE Voto >= 24 AND Voto <= 28 SELECT * FROM E WHERE Voto BETWEEN 24 AND 28 4 Esercizi di interrogazioni in SQL
  • 5. Database Esami – interrogazioni semplici Studenti il cui nome inizia con G SELECT * FROM S WHERE SNome LIKE 'G%' 5 Esercizi di interrogazioni in SQL
  • 6. Database Esami – interrogazioni semplici Studenti con l'attributo città non specificato  SELECT * FROM S WHERE Citta IS NULL 6 Esercizi di interrogazioni in SQL
  • 7. Database Esami – interrogazioni semplici Per ogni esame con voto superiore a 24 riportare il nome dello  studente e il codice del docente del corso  SELECT S.SNome, C.CD FROM S,E,C WHERE S.Matr=E.Matr AND E.CC=C.CC AND Voto > 24 7 Esercizi di interrogazioni in SQL
  • 8. Database Esami – interrogazioni semplici Coppie di studenti residenti nella stessa città SELECT S1.Matr,S2.Matr FROM S S1, S S2 WHERE S1.Citta = S2.Citta AND S1.Matr < S2.Matr 8 Esercizi di interrogazioni in SQL
  • 9. Database Esami – interrogazioni semplici Matricole degli studenti che hanno sostenuto almeno uno  degli esami sostenuti dallo studente di nome 'PAOLA' SELECT E1.Matr FROM S, E E1, E E2 WHERE E2.Matr = S.Matr AND E1.CC = E2.CC AND S.SNome= 'PAOLA' 9 Esercizi di interrogazioni in SQL
  • 10. Videonoleggio DVD Si supponga di voler costruire un database per la gestione dei  noleggi di DVD di un negozio. Tale database, in una versione del  tutto semplicistica ed irreale, potrebbe essere rappresentato dalle  tabelle clienti, dvd e noleggi: tabella clienti, relativa ai clienti del videonoleggio e contenente  informazioni quali il numero di tessera, il nome, il cognome (tutti  obbligatori) ed il numero di telefono. tabella dvd, relativa ai dvd in possesso del videonoleggio (si assuma per  semplicità che le copie di ogni dvd siano illimitate, e che quindi più  clienti possano prendere a noleggio copie diverse di uno stesso dvd  contemporaneamente). Per ogni dvd la tabella tiene traccia del codice  (obbligatorio), del titolo, del regista, del voto della critica (da 1 a 10) e  della trama. tabella noleggi, relativa ai noleggi di dvd in atto in quel momento. In  particolare, la tabella tiene traccia del codice del dvd noleggiato, del  numero di tessera del cliente che sta effettuando il noleggio e della data  in cui il cliente ha iniziato il noleggio. 10 Esercizi di interrogazioni in SQL
  • 11. Videonoleggio DVD Traducendo la realtà relativa al videonoleggio con i  costrutti del modello relazionale si ottiene: CLIENTI (TESSERA, NOME, COGNOME, TELEFONO) DVD (CODICE, TITOLO, REGISTA, VOTO, TRAMA) NOLEGGI (CODICE_DVD, TESSERA, DATA_NOLEGGIO) Gli attributi sottolineati rappresentano la chiave primaria  di ciascuna tabella 11 Esercizi di interrogazioni in SQL
  • 12. Videonoleggio DVD CREATE TABLE CLIENTI ( TESSERA CHAR(5) NOT NULL, NOME VARCHAR(60) NOT NULL, COGNOME VARCHAR(60) NOT NULL, TELEFONO VARCHAR(20), PRIMARY KEY (TESSERA) ); CREATE TABLE DVD ( CODICE CHAR(5) NOT NULL, TITOLO VARCHAR(60), REGISTA VARCHAR(60), VOTO INT CHECK (VOTO BETWEEN 1 AND 10), TRAMA VARCHAR(200), PRIMARY KEY (CODICE) ); 12 Esercizi di interrogazioni in SQL
  • 13. Videonoleggio DVD CREATE TABLE NOLEGGI ( CODICE_DVD CHAR(5) NOT NULL REFERENCES DVD(CODICE), TESSERA CHAR(5) NOT NULL REFERENCES CLIENTI(TESSERA), DATA_NOLEGGIO DATE, PRIMARY KEY (CODICE_DVD,TESSERA) ); 13 Esercizi di interrogazioni in SQL
  • 14. Videonoleggio DVD Popolare le tabelle create seguendo la traccia indicata di  seguito: Provare ad inserire almeno un record “non valido” (che va  contro la definizione del vincolo espresso in fase di definizione  della tabella) per i vincoli di ciascuna tabella Inserire alcuni record “validi” e consistenti per ogni tabella  (prevedendo anche la possibilità di valori nulli) Aggiornare, aumentando di 3 unità il voto, il record della  tabella DVD relativo al codice ‘12345’ 14 Esercizi di interrogazioni in SQL
  • 15. Videonoleggio DVD INSERT INTO CLIENTI VALUES (‘00001’,’Carlo’, ‘Rossi’, ‘+390596606633’) ... INSERT INTO DVD VALUES (‘00001’,‘Braveheart’,‘M.Gibson’,8, ‘William Wallace  unites the 13th Century Scots in their battle to overthrow  English rule’) ... UPDATE DVD SET VOTO = VOTO + 3 WHERE CODICE = ‘12345’ 15 Esercizi di interrogazioni in SQL
  • 16. Videonoleggio DVD Formulare le seguenti interrogazioni: “Elenco dei DVD (distinti) che hanno un voto maggiore di 5” “Telefono dei clienti di nome ‘Carlo’” “Codici DVD noleggiati da clienti con tessere (‘00001’, ‘00002’,  ‘00003’, ‘00004’)” 16 Esercizi di interrogazioni in SQL
  • 17. Videonoleggio DVD SELECT CODICE FROM DVD WHERE VOTO>5 SELECT TELEFONO FROM CLIENTI WHERE NOME=‘Carlo’ SELECT CODICE_DVD FROM NOLEGGI WHERE TESSERA IN (‘00001’,‘000002’,‘000003’,‘000004’) 17 Esercizi di interrogazioni in SQL