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



Похожие документы
Basi di Dati Temi d esame svolti (SQL)

Esercizi di Basi di dati - SQL

Data management a.a Il linguaggio SQL

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

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

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

SQL: Esercizi. ORCHESTRA(CodO, NomeO, NomeDirettore, numelementi) CONCERTI(CodC, Data, CodO, CodS, PrezzoBiglietto) SALE(CodS, NomeS, Citta, Capienza)

Esercizi di SQL. Esercizio 1. È dato lo schema relazionale costituito dalle seguenti tabelle (le chiavi primarie sono sottolineate)

Esercitazione su SQL

Alessandra Raffaetà. Esercizio

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

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

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

Interrogazioni complesse. SQL avanzato 1

Data la seguente tabella :

Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Esame di Sistemi Informativi e Basi di Dati 6 crediti Aprile 2006

Esercizio ER 1. Soluzione ER 1

(a) Trovare le informazioni dei viaggi di durata inferiore ai 15 giorni select * from Viaggio where Durata <15

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

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

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

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

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

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

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

SQL. Esercitazione 6-7. Contatti: Dott.ssa Silvia Bonfanti

SQL: definizione schema

SQL seconda 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 2012/13

SQL - Funzioni di gruppo

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

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO 20 SETTEMBRE 2012

CONCETTO DI ANNIDAMENTO

cliente... nuovo cliente trasloco

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

CAPITOLO 4 ESERCIZI SU SQL

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

SQL. Esercitazione. Contatti: Dott. Domenico Fabio Savo

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

Corso di Basi di Dati

Il linguaggio SQL: query innestate

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

Esercizi SQL. Dato il seguente schema di una base di dati dove gli attributi che compongono la chiave sono scritti in grassetto

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:

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

Prova scritta. Giovedì 02 Ottobre Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Prova Scritta di Basi di Dati

Basi di dati I Soluzione Quinto Homework del 9 gennaio 2013

Il linguaggio SQL: viste e tabelle derivate

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

SQL. DDL e vincoli. Basi di Dati 1 Esercitazione 4. Matteo Picozzi {picozzi@elet.polimi.it}

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

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.


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

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

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

ESAME di INFORMATICA e ARCHIVIAZIONE

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Il linguaggio di Interrogazione SQL Esercizi

S Q L E S E R C I Z I

Esercitazione: Il DBMS MySQL

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

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Compito Basi di Dati. Tempo concesso: 90 minuti 18 Gennaio 2007 Nome: Cognome: Matricola:

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

Esercizio III. telefono, tipo di regia (comico, drammatico, ) per i registi: il nome e il cognome (che identificano il regista), l età, il

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

Esercizi di progettazione. Basi di dati

Interrogazioni complesse. SQL avanzato 1

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

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di Dati Esempi di prove di verifica con soluzioni

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

1. esprimere in algebra relazionale la seguente interrogazione. Estrarre nome, e cognome dei clienti che hanno noleggiato auto di categoria Executive

Corso di Basi di Dati. Progettazione di Database: Esercizi Home page del corso:

Corso di Laboratorio di Basi di Dati

Prova Scritta di Basi di Dati

ESERCIZIO 1 (15 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un sistema di prenotazioni di biglietti aerei:

Basi di dati: appello 14/07/06

3 GARA NAZIONALE SIA

4 SQL : Interrogazioni nidificate

Esercizio. Atzeni e altri, Basi di dati, Capitolo 8 64

Esercizi di SQL. È riportato di seguito un insieme di esercizi risolti in SQL. Per ogni esercizio una o più soluzioni equivalenti sono presentate.

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

MAX, SUM, AVG, COUNT)

PRIMO ESEMPIO: TASI ALIQUOTA AL 2,5 PER MILLE SULLA PRIMA CASA E 0,8 PER MILLE SULLE SECONDE CASE (ALIQUOTA 11,4 PER MILLE)

Capitolo 13. Interrogare una base di dati

Interrogazioni nidificate, commenti

Progettazione logica relazionale (1/2)

Транскрипт:

Basi di Dati Esercizi di SQL (2) - Soluzioni 1. 15 febbraio 2001. CORSO (CodCorso, NomeC, Anno, Semestre) ORARIO-LEZIONI (CodCorso, GiornoSettimana, OraInizio, OraFine, Aula) (a) Trovare le aule in cui non si tengono mai lezioni di corsi del primo anno. SELECT DISTINCT Aula FROM ORARIO-LEZIONI WHERE Aula NOT IN (SELECT Aula FROM ORARIO_LEZIONI OL, CORSO C WHERE OL.CodCorso=C.CodCorso AND C.Anno=1) SELECT DISTINCT Aula FROM ORARIO-LEZIONI OL1 WHERE NOT EXISTS (SELECT * FROM ORARIO-LEZIONI OL2, CORSO C WHERE OL2.CodCorso=C.CodCorso AND C.Anno=1 AND OL2.Aula=OL1.Aula) (b) Trovare codice corso, nome corso e numero totale di ore di lezione settimanali per i corsi del terzo anno per cui il numero complessivo di ore di lezione settimanali e superiore a 10 e le lezioni sono in piu di tre giorni diversi della settimana. SELECT C.CodCorso, C.NomeC, SUM(OraFine-OraInizio) FROM CORSO C, ORARIO-LEZIONI OL WHERE C.CodCorso=OL.CodCorso AND C.Anno = 3 GROUP BY C.Corso, C.NomeC HAVING SUM(OraFine-OraInizio)>10 AND COUNT(DISTINCT GiornoSettimana)>3 2. 19 aprile 2001. ALLOGGIO (CodA, Indirizzo, Citta, Superficie, CostoAffittoMensile) CONTRATTO-AFFITTO (CodC, DataInizio, DataFine, NomePersona,CodA) N.B. Supercie espressa in metri quadri. Per i contratti in corso, DataFine e NULL.

(a) Trovare, per le citta in cui sono stati stipulati almeno 100 contratti, la citta, il costo mensile massimo degli affitti, il costo mensile medio degli affitti, la durata massima dei contratti, la durata media dei contratti e il numero totale di contratti stipulati. SELECT Citta, MAX(CostoAffittoMensile), AVG(CostoAffittoMensile), MAX(DataFine-DataInizio), AVG(DataFine-DataInizio), COUNT(*) FROM ALLOGGIO A, CONTRATTO-AFFITTO C WHERE A.CodA=C.CodA GROUP BY Citta HAVING COUNT(*)>=100 (b) Trovare il nome delle persone che non hanno mai affittato alloggi con superficie superiore a 80 metri quadri. SELECT DISTINCT NomePersona FROM CONTRATTO-AFFITTO WHERE NomePersona NOT IN (SELECT NomePErsona FROM CONTRATTO-AFFITTO C, ALLOGGIO A WHERE C.CodA=A.CodA AND Superficie>80) SELECT DISTINCT NomePersona FROM CONTRATTO-AFFITTO CA1 WHERE NOT EXISTS (SELECT * FROM CONTRATTO-AFFITTO CA2,ALLOGGIO A WHERE CA2.CodA=A.CodA AND CA2.NomePersona=CA1.NomePersona AND ALLOGGIO.Superficie>80) 3. 15 settembre 1993. AEREI (Matr, Modello, NumPosti) ORARIO (Sigla, ParteDa, Destinaz, OraPart, OraArr) VOLI (Sigla, Matr, Data, PostiPren) (a) Trovare la sigla e l'ora di partenza dei voli in partenza da Milano per Napoli il 1 ottobre 1993, che dispongono ancora di posti liberi la cui durata (differenza tra l'ora di arrivo e l'ora di partenza) e inferiore alla durata media dei voli da Milano a Napoli. SELECT Sigla, OraPart FROM VOLI V, ORARIO O, AEREI A WHERE V.Sigla=O.Sigla AND A.Matr=V.Matr AND O.ParteDa= Milano AND O.Destinaz= Napoli AND V.Data= 1/10/93 AND A.NumPosti>V.PostiPren AND (O.OraArr-OraPart) < (SELECT AVG(OraArr-OraPart) FROM ORARIO WHERE ParteDa= Milano AND Destinaz= Napoli )

4. 29 giugno 1998. ORCHESTRA(CodO, NomeO, NomrDirettore, numelementi) CONCERTI(CodC, Data, CodO, CodS, PrezzoBiglietto) SALE(CodS, NomeS, Citta, Capienza) (a) Trovare il codice e il nome delle orchestre con piu di 30 elementi che hanno tenuto concerti sia a Torino, sia a Milano e non hanno mai tenuto concerti a Bologna. SELECT O.CodO, NomeO FROM ORCHESTRA O, CONCERTI C, SALE S WHERE O.CodO=C.CodO AND S.CodS=C.CodS AND Citta= Torino AND NumElementi>30 AND O.CodO IN (SELECT C1.CodO FROM CONCERTI C, SALE S WHERE C.CodS=S.CodS AND Citta= Milano ) AND O.CodO NOT IN (SELECT CodO FROM CONCERTI C, SALE S WHERE C.CodS=S.CodS AND Citta= Bologna ) SELECT CodO, NomeO FROM ORCHESTRA WHERE NumElementi>30 AND CodO IN (SELECT C1.CodO FROM CONCERTI C1, SALE S1 WHERE C1.CodS=S1.CodS AND S1.Citta= Torino ) AND CodO IN (SELECT C2.CodO FROM CONCERTI C2, SALE S2 WHERE C2.CodS=S2.CodS AND S2.Citta= Milano ) AND CodO NOT IN (SELECT C3.CodO FROM CONCERTI C3, SALE S3 WHERE C3.CodS=S3.CodS AND S3.Citta= Bologna ) 5. 23 settembre 1996. CLIENTE(Cod-Cli,nome) CONTO(Cod-Conto, saldo, agenzia, stato) CONTO-CLIENTE(Cod-Conto, Cod-Cli) (a) Trovare tutte le agenzie che hanno almeno un cliente titolare da solo (senza cointestatari) di un unico conto corrente (cliente a cui non e intestato nessun altro conto corrente).

SELECT DISTINCT Agenzia FROM CONTO C, CONTO-CLIENTE CL WHERE C.Cod-Conto =CL.Cod-Conto AND Cod-Cli IN (SELECT Cod-Cli FROM CONTO-CLIENTE GROUP BY Cod-Cli GROUP BY Cod-Conto, Agenzia HAVING COUNT(*)=1 SELECT DISTINCT Agenzia FROM CONTO C, CONTO-CLIENTE CL WHERE C.Cod-Conto =CL.Cod-Conto AND Cod-Cli IN (SELECT Cod-Cli FROM CONTO-CLIENTE GROUP BY Cod-Cli AND C.Cod-Conto IN (SELECT Cod-Conto FROM CONTO-CLIENTE GROUP BY Cod-Conto SELECT DISTINCT C.Agenzia FROM Conto C, CONTO-CLIENTE CL WHERE C.Cod-Conto =CL. Cod-Conto AND NOT EXISTS (SELECT * FROM CONTO-CLIENTE CL2 WHERE CL2.Cod-Conto =CL. Cod-Conto AND CL2.Cod-Cli<>CL.Cod-Cli) AND NOT EXISTS (SELECT * FROM CONTO-CLIENTE CL3 WHERE CL3.Cod-Cli=CL.Cod-Cli AND CL3.Cod-Conto<>CL.Cod-Conto) 6. 14 luglio 1997. CONTRIBUENTE(CodFiscale, Nome, Via, Citta ) DICHIARAZIONE(CodDichiarazione, Tipo, Reddito) PRESENTA(CodFiscale, CodDichiarazione, Data) (a) Visualizzare codice, nome e media dei redditi dichiarati dal 1990 in poi per i contribuenti tali che il massimo reddito da loro dichiarato dal 1990 in poi sia superiore alla media dei redditi calcolata su tutte le dichiarazioni nel database.

SELECT C.CodFiscale, C.Nome, AVG(Reddito) FROM CONTRIBUENTE C, DICHIARAZIONE D, PRESENTA P WHERE C.CodFiscale=P.CodFiscale AND D.CodDichiarazione=P.CodDichiarazione AND P.Data> 1/1/1990 GROUP BY C.CodFiscale, C.Nome HAVING MAX(Reddito) > (SELECT AVG(REddito) FROM DICHIARAZIONE) SELECT C.CodFiscale, C.Nome, AVG(Reddito) FROM CONTRIBUENTE C, DICHIARAZIONE D, PRESENTA P WHERE C.CodFiscale=P.CodFiscale AND D.CodDichiarazione=P.CodDichiarazione AND P.Data> 1/1/1990 AND (SELECT MAX(Reddito) FROM PRESENTA P1, DICHIARAZIONE D1 WHERE P1.CodDichiarazione=D1.CodDichiarazione AND P1.CodFiscale=C.CodFiscale AND D1.Data> 1/1/1990 ) > (SELECT AVG(REddito) FROM DICHIARAZIONE)) GROUP BY C.CodFiscale, C.Nome 7. 21 ottobre 1995. PERSONA(Nome, Sesso, Eta ) GENITORE(Nome-Gen, Nome-Figlio) (a) Trovare il nome di tutte le persone con eta inferiore a 10 anni che sono figli unici. SELECT DISTINCT G.Nome-Figlio FROM PERSONA P, GENITORE G WHERE P.Nome=G.Nome-Figlio AND P.Eta'<10 AND G.Nome-Figlio NOT IN (SELECT Nome-Figlio FROM GENITORE WHERE Nome-Gen IN (SELECT Nome-Gen FROM GENITORE GROUP BY Nome-Gen HAVING COUNT(*) > 1) ) SELECT DISTINCT G.Nome-Figlio FROM PERSONA P, GENITORE G WHERE P.Nome=G.Nome-Figlio AND P.Eta'<10 AND G.Nome-Figlio NOT IN (SELECT G1.Nome-Figlio FROM GENITORE G1, GENITORE G2 WHERE G1.Nome-Gen=G2.Nome-Gen AND G1.Nome-Figlio<>G2.Nome-Figlio)