Esercizio DBMS & SQL 01 - CANZONI
OPERAZIONI SULLA STRUTTURA
1. Crea un nuovo database a cui darai come nome CANZONI.
2. All’interno del Database crea una tabella e salvala con il nome Canzoni, con i campi di seguito indicati,
assegnando i giusti formati ad ognuno di essi (testo, numeri, date, ecc.) e assegnando le dimensioni adeguate
ad ogni campo. I campi da creare sono i seguenti:
 Artista
 Titolo CD
 Titolo Brano
 Durata1
 Posizione2
3. Definisci i seguenti vincoli di integrità:
 Artista + [Titolo Brano] è la chiave primaria
 Durata
è un numero maggiore di 0.
 Posizione
è un numero compreso tra 1 e 30
4.
Inserisci i seguenti record nella tabella:
Artista
Titolo CD
Titolo Brano Durata Posizione
208
Barry White The Ultimate Collection Let The Music Play
3
Carole King Tapestry
11
Tapestry
201
Cat Stevens Greatest Hits
1
Wild World
199
252
Norah Jones Come Away With Me Nightingale
12
Norah Jones Feels Like Home
1
Sunrise
200
5.
Basandoti sulla Tabella Canzoni, crea una maschera e salvala con il nome Maschera Canzoni e inserisci
il seguente record usando la maschera per l’inserimento dei dati:
Artista
Titolo CD
Titolo Brano Durata Posizione
Barry White The Ultimate Collection Come on
8
346
6. Basandoti sulla Tabella Canzoni, genera un Report e salvalo con il nome Report Canzoni
1
2
Espressa in secondi
Posizione del brano nel CD
INTERROGAZIONI IN SQL (punteggio minimo: 2 su 4)
1.
Utilizzando SQL crea la seguente query e salvala con il nome Query 01 “Tutti i brani di Norah
Jones”, in modo da ottenere la seguente tabella:
Artista
Titolo CD
Titolo Brano Durata Posizione
Norah Jones Come Away With Me Nightingale 252
12
Norah Jones Feels Like Home
1
Sunrise
200
2.
Utilizzando SQL crea la seguente query e salvala con il nome Query 02: “Artista, Titolo CD, Titolo
Brano e Durata dei brani che durano al massimo 200 secondi. La tabella deve essere ordinata in base
al campo “Titolo brano””, in modo da ottenere la seguente tabella:
Artista
Titolo CD
Titolo Brano Durata
Norah Jones Feels Like Home Sunrise
200
Cat Stevens Greatest Hits
199
Wild World
3.
Utilizzando SQL crea la seguente query e salvala con il nome Query 03: “Durata e titolo dei brani che
sono nelle posizioni da 3 a 8 dell’artista Barry White”, in modo da ottenere la seguente tabella:
Durata Titolo Brano
346 Come on
208 Let The Music Play
4.
Utilizzando SQL crea la seguente query e salvala con il nome Query 04 “Titolo CD, Artista, Titolo
Brano, e durata dei brani
a) di Norah Jones oppure di Carole King che
b) durano più di 200 secondi”, in modo da ottenere la seguente tabella:
Titolo CD
Artista Titolo Brano Durata
Carole King Tapestry
Tapestry
201
Come Away With Me Norah Jones Nightingale
252
Esercizio DBMS & SQL 02 - CD
OPERAZIONI SULLA STRUTTURA
1. Crea un nuovo database a cui darai come nome CD
2. All’interno del Database crea una tabella e salvala con il nome CD, con i campi di seguito indicati,
assegnando i giusti formati ad ognuno di essi (testo, numeri, date, ecc.) e assegnando le dimensioni
adeguate ad ogni campo. I campi da creare sono i seguenti:
 Artista
 Titolo CD
 Data Acquisto
 Sito Web1

 Brani

3. Definisci i seguenti vincoli di integrità:
è la chiave primaria
 Artista + [Titolo CD]
è il numero di brani ed è un numero compreso tra 1 e 60
 Brani
deve essere successiva al 31/12/2003.
 Data Acquisto
4. Inserisci i seguenti record nella tabella:
Artista
Titolo CD
Data Acquisto
Sito Web
Brani
Vasco Rossi
Platinum Collection
30/03/2008 http://www.vascorossi.net/
50
Gianna Nannini Gianna Best
15/06/2010 http://www.giannanannini.com/
29
Lucio Battisti
Battisti-Panella. Il cofanetto
20/10/2009 http://www.celeste.it/battisti/
40
Francesco Guccini Storia di altre storie
10/12/2010 http://www.francescoguccini.it/
31
Pino Daniele
Platinum Collection
30/03/2008 http://www.pinodaniele.com/
37
Edoardo Bennato Quartetto d’archi
30/09/2011 http://www.bennato.net/
16
5. Basandoti sulla Tabella CD, crea una maschera e salvala con il nome Maschera CD e Inserisci il
seguente record usando la maschera per l’inserimento dei dati:
Artista
Titolo CD
Data Acquisto
Sito Web
Brani
Lucio Battisti Le avventure di Battisti e Mogol 20/12/2008
http://www.celeste.it/battisti/
50
6. Basandoti sulla Tabella CD, genera un Report e salvalo con il nome Report CD
1
Link al sito internet dell’artista
INTERROGAZIONI IN SQL
1. Utilizzando SQL crea la seguente query e salvala con il nome Query 01: “Elenco, senza ripetizione, di tutti
gli artisti di cui si possiede almeno un CD1 ”, in modo da ottenere la seguente tabella:
Artista
Edoardo Bennato
Francesco Guccini
Gianna Nannini
Lucio Battisti
Pino Daniele
Vasco Rossi
2. Utilizzando SQL crea la seguente query e salvala con il nome Query 02“Tutti i dati presenti nella tabella,
ordinati per titolo CD”, in modo da ottenere la seguente tabella:
Artista
Titolo CD
Data Acquisto
Sito Web
Brani
Lucio Battisti
Battisti-Panella. Il cofanetto
20/10/2009 http://www.celeste.it/battisti/
40
Gianna Nannini Gianna Best
15/06/2010 http://www.giannanannini.com/
29
Lucio Battisti
Le avventure di Battisti e Mogol
20/12/2008 http://www.celeste.it/battisti/
50
Pino Daniele
Platinum Collection
30/03/2008 http://www.pinodaniele.com/
37
Vasco Rossi
Platinum Collection
30/03/2008 http://www.vascorossi.net/
50
Edoardo Bennato Quartetto d’archi
30/09/2011 http://www.bennato.net/
16
Francesco Guccini Storia di altre storie
10/12/2010 http://www.francescoguccini.it/
31
3. Utilizzando SQL crea la seguente query e salvala con il nome Query 03: “Tutti i CD acquistati dopo il
31/12/20092”, in modo da ottenere la seguente tabella:
Artista
Titolo CD
Data Acquisto
Sito Web
Brani
Gianna Nannini Gianna Best
15/06/2010 http://www.giannanannini.com/
29
Francesco Guccini Storia di altre storie
10/12/2010 http://www.francescoguccini.it/
31
Edoardo Bennato Quartetto d’archi
30/09/2011 http://www.bennato.net/
16
3. Utilizzando SQL crea la seguente query e salvala con il nome Query 04: “Titolo Cd, Nome dell’artista e
numero dei brani dei CD il cui titolo comincia con la lettera “P””, in modo da ottenere la seguente
tabella:
Titolo CD
Artista Brani
Platinum Collection Vasco Rossi
50
Platinum Collection Pino Daniele
37
5. Utilizzando SQL crea la seguente query e salvala con il nome Query 05: “Tutti i CD acquistati tra il
20/12/2008 e il 15/06/2010 che a) sono di Gianna Nannini oppure che b) presentano almeno 50 brani,
indipendentemente dall’artista”, in modo da ottenere la seguente tabella:
Artista
Titolo CD
Data Acquisto
Sito Web
Brani
Gianna Nannini Gianna Best
15/06/2010 http://www.giannanannini.com/
29
Lucio Battisti Le avventure di Battisti e Mogol
20/12/2008 http://www.celeste.it/battisti/
50
Il comando SELECT DISTINCT di SQL serve ad estrarre una sola volta ogni diversa occorenza di
un valore all'interno di un dato campo
2
È necessario racchiudere i valori di tipo data tra caratteri # in modo che Access sia in grado di
distinguerli dalle stringhe di testo
1
Esercizio DBMS & SQL 03 - STUDENTI
OPERAZIONI SULLA STRUTTURA
4. Crea un nuovo database a cui darai come nome STUDENTI.
5. All’interno del Database crea due tabelle e salvale con i nomi Studenti e Esami, con i campi di seguito indicati,
assegnando i giusti formati ad ognuno di essi (testo, numeri, date, ecc.) e assegnando le dimensioni adeguate ad
ogni campo. I campi da creare sono i seguenti:
STUDENTI:
ESAMI
 Matricola
 Matricola

 Nome Corso
Nome Studente
 Data Esame

Anno Iscrizione1
 Voto2
2. Definisci i seguenti vincoli di integrità:
 [Matricola]
 [Matricola] + [Nome corso]
 Anno Iscrizione
 Data esame
 Voto
chiave primaria di STUDENTI
chiave primaria di ESAMI
Numero intero compreso tra il 1990 e il 2012.
Data compresa tra il 1/10/1990 e il 31/12/2012
Numero intero compreso tra 0 e 31
3. Inserisci i seguenti record nelle tabelle:
Matricola Nome Corso
123/654321 Geometria
123/654321 Fisica I
123/654321 Sistemi Operativi
123/123456 Ricerca Operativa
123/654321 Basi di Dati
123/123456 Basi di Dati
123/654321 Analisi I
123/345123 Algebra
123/345123 Sistemi Operativi
123/123456 Sistemi Operativi
Data Esame Voto
10/07/2005 26
14/06/2006 25
16/07/2006 31
15/06/2007 30
16/09/2007 27
16/09/2007 31
12/06/2009 20
10/07/2010 24
12/06/2011 28
14/06/2011 27
Studenti
Matricola Nome Studente Anno Iscrizione
123/123456 Luigi Rossi
2000
123/345123 Marco Bianchi
2004
123/545432 Luigi Rossi
2008
123/654321 Franco Verdi
2009
4. Basandoti sulla Tabella Studenti crea una maschera e salvala con il nome Maschera Studenti
5. Basandoti sulla Tabella Esami, genera un Report e salvalo con il nome Report Esami
1
Anno solare della iscrizione al primo anno (es: 2006)
2
30 e Lode va codificato come 31.
INTERROGAZIONI IN SQL
1. Utilizzando SQL crea la seguente query e salvala dandole come nome Query 01: “Tutti gli esami superati dopo
il 31/12/2009 e il cui voto è almeno 27”, in modo da ottenere la seguente tabella:
Matricola Nome Corso Data Esame Voto
123/123456 Sistemi Operativi 14/06/2011 27
123/345123 Sistemi Operativi 12/06/2011 28
2. Utilizzando SQL crea la seguente query e salvala dandole come nome Query 02: “Nome dello studente,
matricola, nome corso, Voto e Data degli esami superati di ‘Basi di Dati’ o ‘Sistemi Operativi’”, in modo da
ottenere la seguente tabella:
Nome studente matricola
nome corso Voto Data Esame
Luigi Rossi
123/123456 Basi di Dati
31 16/09/2007
Franco Verdi 123/654321 Basi di Dati
27 16/09/2007
Luigi Rossi
123/123456 Sistemi Operativi 27 14/06/2011
Marco Bianchi 123/345123 Sistemi Operativi 28 12/06/2011
Franco Verdi 123/654321 Sistemi Operativi 31 16/07/2006
3. Utilizzando SQL crea la seguente query e salvala dandole come nome Query 03: “Numero totale di esami e voto
medio complessivo di tutti gli esami di Sistemi operativi sostenuti dopo il 1/1/2011”, in modo da ottenere la
seguente tabella (i campi si dovranno chiamare “Numero esami” e “Voto medio”):
Numero esami Voto medio
2
27,5
4. Utilizzando SQL crea la seguente query e salvala dandole come nome Query 04: “Nome Studente,
Matricola, nome corso e Voto degli studenti che hanno superato un qualsiasi esame con il voto minimo pari a
28”, in modo da ottenere la seguente tabella:
Nome studente Matricola
Nome corso
Voto
Luigi Rossi
123/123456 Basi di Dati
31
Luigi Rossi
123/123456 Ricerca Operativa 30
Marco Bianchi 123/345123 Sistemi Operativi
28
Franco Verdi 123/654321 Sistemi Operativi
31
Esercizio DBMS & SQL 04 - CALCIATORI
OPERAZIONI SULLA STRUTTURA
1. Crea un nuovo database a cui darai come nome il tuo cognome e nome (senza spazi e accenti).
2. All’interno del Database crea una tabella e salvala con il nome Calciatori, con i campi di seguito indicati,
assegnando i giusti formati ad ognuno di essi (testo, numeri, date, ecc.) e assegnando le dimensioni
adeguate ad ogni campo. I campi da creare sono i seguenti:
 Atleta
 Squadra
 Partite Giocate
 Minuti Giocati
 Reti
 Voto medio
3. Definisci i seguenti vincoli di integrità:
 Atleta+Squadra
è la chiave primaria.
 Partite Giocate
è un numero compreso tra 0 e 7
 Minuti Giocati
è un numero compreso tra 0 e 750 (tempi supplementari inclusi)
 Reti
è un numero maggiore o uguale a zero
 Voto medio
è un numero reale (con 2 cifre decimali) compreso tra 0 e 10
4. Inserisci i seguenti record nella tabella
Atleta Squadra Partite Giocate Minuti giocati Reti Voto medio
4
266
2
Adriano Brasile
5,50
Del Piero Italia
5
169
1
5,99
Klose
6.30
Germania
7
586
5
Ronaldo Portogallo
6,33
6
484
1
Totti
6,86
Italia
7
467
1
Zidane
5,88
Francia
6
560
3
5. Basandoti sulla Tabella Calciatori, crea una maschera, salvala con il nome Maschera Calciatori ed
inserisci il seguente record usando la maschera per l’inserimento dei dati:
Atleta Squadra Partite Giocate Minuti giocati Reti Voto medio
5
2
Ronaldo Brasile
411
6,00
6. Basandoti sulla Tabella Calciatori, genera un Report e salvalo con il nome Report Calciatori
INTERROGAZIONI IN SQL
1. Utilizzando SQL crea la seguente query e salvala con il nome Query 01: “Tutti i Calciatori del Brasile che
hanno giocato almeno 5 partite”, in modo da ottenere la seguente tabella:
Atleta Squadra Partite Giocate Minuti Giocati Reti Voto Medio
Ronaldo Brasile
5
411
2
6
2.
Utilizzando SQL crea la seguente query e salvala con il nome Query 02: “Tutti i calciatori che
a) hanno giocato nel Brasile o nell’Italia e che
b) hanno giocato almeno 5 partite oppure hanno un voto medio di almeno 6.00”,
in modo da ottenere la seguente tabella:
Atleta Squadra Partite Giocate Minuti Giocati Reti Voto Medio
Del Piero Italia
5
1
5,99
169
Totti
6,86
Italia
7
467
1
Ronaldo Brasile
6
5
411
2
3. Utilizzando SQL crea la seguente query e salvala con il nome Query 03: “Il numero totale di calciatori, Il
numero medio di partite giocate e Il voto medio dei calciatori che hanno giocato almeno 5 partite e che
hanno un voto medio compreso tra 6.0 e 6.5”, in modo da ottenere la seguente tabella (i campi della tabella
risposta dovranno intitolarsi: “Numero Calciatori”, Media Presenze”, Media Voti”):
Numero Calciatori Media Presenze
Media Voti
6
3
6,21000003814697
4. Utilizzando SQL crea la seguente query e salvala con il nome Query 04: “Il numero totale di calciatori per
squadra, limitandoti alle squadre con almeno 2 calciatori”, in modo da ottenere la seguente tabella (il
campo della tabella risposta dovrà intitolarsi: “Numero Calciatori per squadra”):
Squadra Numero Calciatori per squadra
Brasile
2
Italia
2
5. Utilizzando SQL crea la seguente query e salvala con il nome Query 05: “Tutti i calciatori che hanno
segnato almeno 2 reti, che hanno un voto medio di almeno 6.0”, in modo da ottenere la seguente tabella:
Atleta Squadra Partite Minuti Giocati Reti Voto Medio
Klose Germania Giocate
7
586
5
6,3
Ronaldo Brasile
5
411
2
6