S Q L E S E R C I Z I

Похожие документы
Esercizio ER 1. Soluzione ER 1

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

Basi di Dati. Esercizi di SQL (2) - Soluzioni

Dato lo SCHEMA RELAZIONALE:

Data management a.a Il linguaggio SQL

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

1) Semplicissimi esercizi introduttivi

Eserciziario SQL. Costantino, Luca, Santoro, Marchese. 29 aprile Utilizzando le relazioni Comune e Terremoto, risolvete le seguenti query SQL

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Il linguaggio SQL: query innestate

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di dati: appello 08/03/06

SQL: definizione schema

Il linguaggio di Interrogazione SQL Esercizi

Istruzioni DML di SQL

1 Database universitario 1.1 Elenco tabelle PERSONA (ID, is_studente, is_docente, nome, cognome) STUDENTE (matricola, persona references persona(id))

Università degli Studi di Milano. Esercizi Corso SIT. Basi di dati

ESERCITAZIONE 5 Giovedì 20 novembre 2014 (3 ore) Esercizi tratti da temi d esame (SQL e linguaggi formali)

Prova Scritta di Basi di Dati

Esempio di database relazionale con l utilizzo del prodotto MySQL

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

OPERAZIONI SULLA STRUTTURA

Le cose che non vogliamo vedere

UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest)

Esercitazione su SQL

SQL - Funzioni di gruppo

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Compiti d Esame di Basi di Dati e Sistemi Informativi per il CdL in Scienze dei Beni Culturali

Esercizi di SQL. 3) cognome e nome dei clienti che abitano a Rimini e guadagnano più di 3000;

Basi di Dati Corso di Laura in Informatica Umanistica

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Interrogazioni complesse. SQL avanzato 1

Trovare i nomi dei marinai che hanno un imbarco su almeno una nave

Esame Informatica Generale 13/04/2016 Tema A

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Modello concettuale dei dati. Paolo Brunasti - UniMiB 1 / 12

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Progettazione logica

CAPITOLO 4 ESERCIZI SU SQL

Squadra Giocatore Partita Goal Ingresso Ingresso SELECT FROM WHERE AND AND SELECT FROM WHERE AND AND AND AND SELECT FROM WHERE AND AND

Trovare l aeroporto italiano con il maggior numero di piste

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Esercizio 1. Cognome e nome:... Matricola:...

ESAME di INFORMATICA e ARCHIVIAZIONE

CONCETTO DI ANNIDAMENTO

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Esercitazione SQL. Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Ministero dell Istruzione, dell Università e della Ricerca

2011 Politecnico di Torino 1

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

SQL (STRUCTURED QUERY LANGUAGE)

1. Per ogni film in cui appaiono solo attori nati prima del 1970 restituire il titolo del film.

PENSIONI E BUSTE PAGA PIU LEGGERE A CAUSA DEGLI AUMENTI DELLE ADDIZIONALI IRPEF

Corso di Basi di Dati

Sistemi per la gestione di database: MySQL ( )

Prova scritta. Mercoledì 11 Febbraio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Esame Basi di Dati. 21 Gennaio 2013

Il linguaggio SQL: viste e tabelle derivate

Esercizio 4.1. Soluzione:

Il linguaggio SQL. ing. Alfredo Cozzi 1

MAX, SUM, AVG, COUNT)

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Considerate lo schema ER in figura: lo schema rappresenta varie proprietà di uomini e donne. Copyright The McGraw-Hill Companies, srl

SQL IL LINGUAGGIO DI INTERROGAZIONE

Elaborazione Automatica dei Dati. SQL come Query Language. Enrico Cavalli. Anno Accademico Il linguaggio SQL

Appello di BD del Corso di laurea in Informatica del 9/1/2007 Compito e soluzioni

Capitolo 6. Esercizio 6.1

Livello di benessere organizzativo, grado di condivisione del sistema di valutazione e valutazione del superiore gerarchico

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Dichiarazione degli schemi in SQL DDL 1

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Progettazione di Basi di Dati. Temi d esame svolti

Basi di Dati. Esercitazione 3: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Progettazione di Basi di Dati Temi d esame svolti

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

cliente... nuovo cliente trasloco

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Транскрипт:

S Q L E S E R C I Z I 1. Sia dato il seguente schema relazionale: GIOCATORE(CodGiocatore, Nome, RuoloIdeale) SQUADRA(CodSquadra, Nome, Citt`a) GIOCA IN(CodGiocatore,CodSquadra, Anno, Ruolo) (a) Visualizzare i nomi dei giocatori che hanno militato nel Torino dal 1930 al 1949, nel ruolo di ala destra. 2. Sia dato il seguente schema relazionale: AUTO(Targa, Marca, Cilindrata) POLIZZA(CodicePolizza, DataInizio, DataFine, Premio, Targa) INCIDENTE(Targa, Data,Ora, Luogo) (a) Visualizzare, in ordine decrescente rispetto alla cilindrata, tutte le auto che sono state coinvolte in un incidente a Torino negli anni 1980-1995. 3. Sia dato il seguente schema relazionale: ATLETA(CodAtleta, Nome, Nazione, Statura, Peso, DataNascita) FINALE(CodAtleta, CodSpecialita, Prestazione) SPECIALITA(CodSpecialita, NomeSpecialita) (a) Visualizzare gli atleti italiani che hanno partecipato alla finale dei 100m o dei 200m. (b) Visualizzare i nomi degli atleti di nazionalit`a italiana partecipanti alla finale in pi `u di una specialit`a. (c) Visualizzare i nomi degli atleti partecipanti alla finale dei 100m piani che abbiano corso tale gara in un tempo inferiore ai 10 2 e abbiano una statura inferiore alla media degli atleti contenuti nel database e peso superiore a quello dell atleta statunitense pi `u pesante. 4. Sia dato il seguente schema relazionale: LP(CodLP, Titolo, CodAutore, Anno, CasaDiscografica) AUTORE(CodAutore, Nome) (a) Visualizzare l anno di registrazione dell LP Nuvole di F. de Andr e. (b) Visualizzare il titolo degli LP registrati dai Pearl Jam dal 1990 in avanti. 5. Sia dato il seguente schema relazionale: LAVORA-IN(CodImpiegato, CodUfficio) IMPIEGATO(CodImpiegato, Nome, Titolo, Stipendio) (a) Visualizzare nome e codice di tutti gli impiegati che percepiscono uno stipendio mensile superiore ai 2.000.000 di lire. (b) Visualizzare il nome e il codice di tutti gli impiegati che condividono l ufficio con il Rag. Fantozzi.

6. Sia dato il seguente schema relazionale: STUDENTI(Matr, Nome, AnnoIscr) ESAMI(CodCorso, Matr, Data, Voto) PIANO-STUDI(Matr, CodCorso, Anno) (a) Visualizzare il nome e la media di tutti gli studenti iscritti negli anni 1993 e successivi che abbiano superato almeno 15 esami, ma nessun esame con voto pari a 18/30, e la cui media sia superiore a 25/30. 7. Sia dato il seguente schema relazionale: ISCRITTO(CodicePersona, Nome, Indirizzo) PRATICA(CodicePersona, CodiceSport, CodicePalestra) (a) Visualizzare nome e indirizzo delle persone che praticano tennis o basket presso la palestra ACME. (b) Visualizzare il nome delle persone e il codice della palestra frequentata per coloro che praticano soltanto basket. 8. Sia dato il seguente schema relazionale: TRENO(CodTreno, Modello, Capienza) TRATTA(CodTreno, NomeCittaPart, NomeCittaArr, OraPart, OraArr) (a) Visualizzare il modello dei treni in servizio sull intera tratta Torino-Milano che hanno una capienza di almeno 500 posti. (b) Visualizzare il modello dei treni in servizio sull intera tratta Torino-Milano dopo le 12.00 che hanno una capienza maggiore della capienza media dei treni in servizio sulla tratta Milano- Verona prima delle 21.00. 9. Sia dato il seguente schema relazionale: FILM(CodFilm, Titolo, Anno, Pellicola, Lingua, Genere) RECITA IN(CodPersona, CodFilm, Nome) DIRIGE(CodPersona, CodFilm, Nome) (a) Visualizzare i nomi delle persone che sono state contemporaneamente attore e regista di uno stesso film, a partire dal 1968, in film horror girati in tedesco. (b) Visualizzare i nomi dei registi che hanno recitato in almeno un film (anche diversi da quelli da loro diretti) e che hanno sempre utilizzato una pellicola 35mm. 10. Sia dato il seguente schema relazionale: MARITO(CodMarito, Nome, DataNascita, LuogoNascita) MOGLIE(CodMoglie, Nome, DataNascita, LuogoNascita) SPOSATI(CodMarito,CodMoglie, Data, Luogo) (a) Visualizzare i nomi degli ultrasessantenni (uomini e donne) che si sono risposati almeno 3 volte.

11. Sia dato il seguente schema relazionale: RADIO(CodRadio, Nome) FREQUENZA(CodRadio,Valore) TRASMETTE(CodRadio,NomeProgramma) (a) Visualizzare i nomi delle radio che trasmettono il medesimo programma. 12. Sia dato il seguente schema relazionale: PROGRAMMATORE(CodProgrammatore, Nome) MODULO(CodModulo, NomeProgetto, Linguaggio, N Linee) LAVORA A(CodProgrammatore, CodModulo) (a) Visualizzare il nome dei programmatori che hanno lavorato al progetto IRISI e il cui nome inizia con la lettera R. (b) Visualizzare il nome dei programmatori che hanno utilizzato il linguaggio Java in esattamente due progetti diversi e abbiano sviluppato almeno 10.000 linee di codice complessivamente. 13. Sia dato il seguente schema relazionale: OGGETTO(CodO, NomeO, Funzione, Costo) DESIGNER(CodD, NomeD, DataN, Citta) PROGETTA(CodO, CodD, Data) Esprimere in SQL le seguenti interrogazioni: (a) Visualizzare funzione e costo medio di tutti gli oggetti progettati da Pininfarina dal 1975 in avanti. (b) Ipotizzando che ogni oggetto possa essere progettato insieme da pi `u di un designer, visualizzare codice e nome di tutte le sedie che sono state progettate soltanto da designer nati dopo il 1968.

SOLUZIONI 1. (a) SELECT DISTINCT Giocatore.Nome FROM Giocatore AS G, Squadra AS S, GiocaIn AS GI WHERE GI.CodGiocatore = G.CodGiocatore AND GI.CodSquadra = S.CodSquadra AND S.Nome = "Torino" AND Ruolo = "Ala destra" AND Anno >= 1930 AND Anno <= 1949; 2. (a) SELECT DISTINCT Auto.* FROM Auto AS A, Incidente AS I WHERE A.Targa = I.Targa AND Luogo = "Torino" AND (Data >= 1/1/1985 AND Data =< 31/12/1995) ORDER BY Cilindrata DESC; 3. (a) SELECT DISTINCT Atleta.* FROM Atleta AS A, Finale AS F, SPECIALITA AS S WHERE (NomeSpecialita = "100m" OR NomeSpecialita = "200m") AND Nazione = "Italia" AND A.CodAtleta = F.CodAtleta AND F.CodSpecialita = S.CodSpecialita; (b) SELECT Nome FROM Atleta AS A, Finale AS F WHERE A.CodAtleta = F.CodAtleta AND Nazione = "Italia" GROUP BY Nome, CodAtleta HAVING COUNT(*) > 1; (c) SELECT DISTINCT A.Nome FROM Atleta AS A, Finale AS F, SPECIALITA AS S WHERE A.CodAtleta = F.CodAtleta AND F.CodSpecialita = S.CodSpecialita AND NomeSpecialita = "100m" AND Prestazione =< 10"2 AND Statura < (SELECT AVG(Statura) FROM Atleta) AND Peso > (SELECT MAX(Peso) FROM Atleta WHERE Nazione = "USA"); 4. (a) SELECT Anno FROM LP, Autore WHERE Titolo = "Nuvole" AND Nome = "De Andre " AND LP.CodAutore = Autore.CodAutore; (b) SELECT Titolo FROM LP, Autore WHERE Nome = "Pearl Jam" AND LP.CodAutore = Autore.CodAutore; AND Anno >= 1990; 5. (a) SELECT Nome, CodImpiegato FROM Impiegato AS I WHERE Stipendio > 2.000.000; (b) SELECT Nome, CodImpiegato FROM Impiegato WHERE Nome <> "Fantozzi" AND CodImpiegato IN (SELECT CodImpiegato FROM LavoraIn WHERE CodUfficio = (SELECT CodUfficio FROM LavoraIn AS L, Impiegato AS I WHERE Nome = "Fantozzi" AND Titolo = "Rag." AND L.CodImpiegato = I.CodImpiegato)) L interrogazione (equivalente) con il join: SELECT I2.Nome, I2.CodImpiegato FROM Impiegato AS I1, Impiegato AS I2 LavoraIn AS L1, LavoraIn AS L2 WHERE I1.Nome = "Fantozzi" AND I2.Nome <> "Fantozzi" AND I1.Titolo = "Rag." AND I1.CodImpiegato = L1.CodImpiegato AND L1.CodUfficio = L2.CodUfficio

AND L2.CodImpiegato = I2.CodImpiegato; In pratica, I1 e L1 sono impiegate per determinare l ufficio di Fantozzi, mentre I2 e L2 sono impiegate per trovare i nomi dei suoi compagni di ufficio. 6. (a) SELECT Nome, AVG(Voto) FROM Studenti, Esami WHERE AnnoIscr >= 1993 AND Studenti.Matr = Esami.Matr AND Matr NOT IN (SELECT Matr FROM Esame WHERE Voto = 18) GROUP BY Matr, Nome HAVING COUNT(*) >= 15 AND AVG(Voto) > 25; 7. (a) SELECT DISTINCT Nome, Indirizzo FROM Iscritto, Pratica WHERE Iscritto.CodicePersona = Pratica.CodicePersona AND CodicePalestra = "ACME" AND (CodiceSport = "Tennis" OR CodiceSport = "Basket"); (b) SELECT Nome, CodicePalestra FROM Iscritto, Pratica WHERE Iscritto.CodicePersona = Pratica.CodicePersona AND CodiceSport = "Basket" AND CodicePersona NOT IN (SELECT CodicePersona FROM Pratica WHERE CodiceSport <> "Basket"); 8. (a) SELECT DISTINCT Modello FROM Treno, Tratta WHERE Treno.CodTreno = Tratta.CodTreno AND NomeCittaPart = "Torino" AND NomeCittaArr = "Milano" AND Capienza >= 500; (b) SELECT DISTINCT Modello FROM Treno, Tratta WHERE Treno.CodTreno = Tratta.CodTreno AND NomeCittaPart = "Torino" AND NomeCittaArr = "Milano" AND OraPart >= 12:00 AND Capienza >= (SELECT AVG(Capienza) FROM Treno, Tratta WHERE Treno.CodTreno = Tratta.CodTreno AND NomeCittaPart = "Milano AND NomeCittaArr = "Verona" AND OraPart =< 22:00); 9. (a) SELECT DISTINCT Nome FROM RecitaIn, Dirige, Film WHERE RecitaIn.CodPersona = Dirige.CodPersona AND RecitaIn.CodFilm = Dirige.CodFilm AND Lingua = "Tedesco" AND Anno > 1968 AND Genere = "Horror"; (b) SELECT Nome FROM RecitaIn WHERE CodPersona IN (SELECT CodPersona FROM Dirige) AND CodPersona NOT IN (SELECT CodPersona FROM Film, Dirige WHERE Film.CodFilm = Dirige.CodFilm AND Pellicola <> "35mm"); 10. (a) SELECT Nome FROM Marito, Sposati WHERE DataNascita.year > 1999-60 AND Marito.CodMarito = Sposati.CodMarito GROUP BY Marito.CodMarito, Nome HAVING COUNT(*) >= 3 UNION SELECT Nome FROM Moglie, Sposati WHERE DataNascita.year > 1999-60

AND Moglie.CodMoglie = Sposati.CodMoglie GROUP BY Moglie.CodMoglie, Nome HAVING COUNT(*) >= 3 11. (a) SELECT Nome FROM Radio WHERE CodRadio IN (SELECT CodRadio FROM Trasmette AS T1, Trasmette AS T2 WHERE T1.NomeProgramma = T2.NomeProgramma AND T1.CodRadio <> T2.CodRadio); 12. (a) SELECT Nome FROM Programmatore WHERE Nome LIKE "R%" AND CodProgrammatore IN (SELECT CodProgrammatore FROM Lavora_A, Modulo WHERE Lavora_A.CodModulo = Modulo.CodModulo AND NomeProgetto = "IRISI"); (b) SELECT Nome FROM Programmatore AS P JOIN Lavora_A AS L ON P.CodProgrammatore = L.CodProgrammatore JOIN Modulo AS M ON M.CodModulo = L.CodModulo WHERE Linguaggio = "Java" GROUP BY CodProgrammatore, Nome HAVING COUNT(DISTINCT NomeProgetto) = 2 AND SUM(N_Linee) >= 10000; 13. (a) SELECT Funzione, AVG(Costo) FROM Oggetto AS O, Progetta AS P, Designer AS D WHERE O.CodO = P.CodO AND D.CodD = P.CodD AND Data >= 1975 AND NomeD = "Pininfarina" GROUP BY Funzione; (b) SELECT CodO, NomeO FROM Oggetto O WHERE Funzione = "Sedia" AND CodO NOT IN (SELECT CodO FROM Progetta AS P, Designer AS D WHERE P.CodD = D.CodD AND DataN <= 1968);