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