Basi di Dati Temi d esame svolti (SQL)

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

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

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

Esercizi di Basi di dati - SQL

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

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

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

S Q L E S E R C I Z I

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

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Operatori aggregati: COUNT

Basi di Dati. S Q L Lezione 4

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

Esercitazione: Interrogazioni SQL

Eserciziario di SQL. Indice. 1 Interrogazioni base: proiezione, selezione e join 2. 2 Interrogazioni nidificate: IN, NOT IN, EXISTS, NOT EXISTS 5

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

Basi di dati: appello 14/07/06

Business Intelligence

Esercitazione 3 SQL 2

Esercizi proposti su SQL SELECT base. Laura Farinetti - DAUIN Politecnico di Torino

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

Basi di Dati DBDMG - Politecnico di Torino Esercizi di SQL

Basi di Dati Esempi di SQL

Basi di Dati Esempi di SQL

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

Esercizi proposti su SQL - SELECT avanzata. Laura Farinetti - DAUIN Politecnico di Torino

ESERCIZI INTERROGAZIONI SQL

Basi di Dati: Corso di laboratorio

Esercizi su SQL. Basi di Dati A.A. 2009/2010 Docente: Prof. Ing. Giorgio Giacinto. Ing. Roberto Tronci.

Basi di dati I Prova di autovalutazione 30 ottobre 2014

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

3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S

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

ed SQL 10 Novembre 2009

Esercizio 2 (15 punti). Si consideri una base di dati che contiene le informazioni relative a uno zoo, descritte dal seguente schema relazionale:

Basi di dati: appello 07/02/06

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

2- Il titolo dei film di F. Fellini prodotti dopo il SELECT f.titolo FROM Film f WHERE f.regista = Fellini AND f.annoproduzione > 1960

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

Esame di Basi di Dati SOLUZIONE APPELLO 14/06/2011

Basi di dati: appello 04/07/06

1- Il nome di tutte le sale di Pisa SELECT s.nome FROM Sale s WHERE s.città = 'Pisa'

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

Interrogazioni semplici

Prima prova di verifica del 4/11/2009

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

Data management a.a Il linguaggio SQL

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

ESERCIZI' Interrogazioni'base'di'dati' Azienda ' hanno*come*direfo*supervisore* Franklin*Wong *

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Basi di Dati Corso di Laura in Informatica Umanistica

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

SQL terza 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 2010/11

Fondamenti di Informatica 2 Simulazione d esame dell 11 Dicembre 2009

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Esercitazione: Il DBMS MySQL

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Esercitazione 3 SQL.

Basi di dati: appello 21/09/12

Basi di dati: appello 08/03/06

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

PROVA SCRITTA DI TECNOLOGIA DATABASE 14/12/2005 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

PROVA SCRITTA DI TECNOLOGIA DATABASE 05/12/2003 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Tipi di sottoquery SQL

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Concettuale. Giuseppe Amato

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

BASI DI DATI. Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web

Laboratorio di Basi di Dati

LO SVOLGIMENTO DEL TEMA DI INFORMATICA

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

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

PROGETTAZIONE DI DATABASE Linguaggio SQL

Basi di dati: appello 28/02/06

Linguaggio SQL seconda parte

Il linguaggio di Interrogazione SQL Esercizi

Interrogazioni nidificate

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

Alessandra Raffaetà. Esempio: Compagnia di trasporti

Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Basi di Dati: Corso di laboratorio

Simulazione prova pratica

SQL e algebra relazionale

Interrogazioni complesse. SQL avanzato 1

SQL - Structured Query Language

Introduzione alle basi di dati

2011 Politecnico di Torino 1

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

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

Tabelle esempio: Impiegato/Dipartimento

Transcript:

Basi di Dati Temi d esame svolti (SQL) Silvia Chiusano e Paolo Garza 9 Ottobre 2003 1 Testo degli esercizi Vengono di seguito riportati i riferimenti ad alcuni esercizi di SQL presi da vecchi temi d esame. Per ogni esercizio vengono riportate le tabelle su cui effettuare l interrogazione e l interrogazione SQL da fare. La chiave primaria delle tabelle è sottolineata. 1. 15 febbraio 2001. Esercizio (1.a). CORSO (CodCorso, NomeC, Anno, Semestre) ORARIO-LEZIONI (CodCorso, GiornoSettimana, OraInizio, OraFine, Aula) Trovare le aule in cui non si tengono mai lezioni di corsi del primo anno. 2. 15 febbraio 2001. Esercizio (1.b). CORSO (CodCorso, NomeC, Anno, Semestre) ORARIO-LEZIONI (CodCorso, GiornoSettimana, OraInizio, OraFine, Aula) 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 è superiore a 10 e le lezioni sono in più di tre giorni diversi della settimana. 3. 19 aprile 2001. Esercizio (1.a). ALLOGGIO (CodA, Indirizzo, Città, Superficie, CostoAffittoMensile) CONTRATTO-AFFITTO (CodC, DataInizio, DataFine, NomePersona, CodA) N.B. Superficie espressa in metri quadri. Per i contratti in corso, DataFine è NULL. Trovare, per le città in cui sono stati stipulati almeno 100 contratti, la città, il costo mensile massimo degli affitti, il costo mensile medio degli affitti, la durata massima dei contratti, la durata media dei contratti e il 1

numero totale di contratti stipulati. 4. 19 aprile 2001. Esercizio (1.b). ALLOGGIO (CodA, Indirizzo, Città, Superficie, CostoAffittoMensile) CONTRATTO-AFFITTO (CodC, DataInizio, DataFine, NomePersona, CodA) N.B. Superficie espressa in metri quadri. Per i contratti in corso, DataFine è NULL. Trovare il nome delle persone che non hanno mai affittato alloggi con superficie superiore a 80 metri quadri. 5. 15 settembre 1993. Esercizio (2.a). AEREI (Matr, Modello, NumPosti) ORARIO (Sigla, ParteDa, Destinaz, OraPart, OraArr) VOLI (Sigla, Matr, Data, PostiPren) 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) è inferiore alla durata media dei voli da Milano a Napoli. 6. 29 giugno 1998. Esercizio (2.a). ORCHESTRA(CodO, NomeO, NomrDirettore, numelementi) CONCERTI(CodC, Data, CodO, CodS, PrezzoBiglietto) SALE(CodS, NomeS, Città, Capienza) Trovare il codice e il nome delle orchestre con più di 30 elementi che hanno tenuto concerti sia a Torino, sia a Milano e non hanno mai tenuto concerti a Bologna. 7. 23 settembre 1996. Esercizio (2.a). CLIENTE(Cod-Cli,nome) CONTO(Cod-Conto, saldo, agenzia, stato) CONTO-CLIENTE(Cod-Conto, Cod-Cli) Trovare tutte le agenzie che hanno almeno un cliente titolare da solo (senza cointestatari) di un unico conto corrente (cliente a cui non è intestato nessun altro conto corrente). 2

8. 14 luglio 1997. Esercizio (2.a). CONTRIBUENTE(CodFiscale, Nome, Via, Città) DICHIARAZIONE(CodDichiarazione, Tipo, Reddito) PRESENTA(CodFiscale, CodDichiarazione, Data) 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. 9. 21 ottobre 1995. Esercizio (2.a). PERSONA(Nome, Sesso, Età) GENITORE(Nome-Gen, Nome-Figlio) Trovare il nome di tutte le persone con età inferiore a 10 anni che sono figli unici. 2 Soluzioni In questa sezione vengono presentate alcune possibili soluzioni (anche piú di una) per le interrogazioni presentate nella precedente sezione. 1. 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); 2. 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; 3

3. 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; 4. 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); 5. 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 VOLI V2, ORARIO O2 WHERE V2.Sigla=O2.Sigla AND O2.ParteDa= Milano AND O2.Destinaz= Napoli ); 6. SELECT O.CodO, O.NomeO FROM ORCHESTRA O WHERE O.NumElementi>30 AND O.CodO IN (SELECT C1.CodO FROM CONCERTI C1, SALE S1 WHERE C1.CodS=S1.CodS AND S1.Citta= Torino ) AND O.CodO IN (SELECT C2.CodO FROM CONCERTI C2, SALE S2 WHERE C2.CodS=S2.CodS AND S2.Citta= Milano ) AND O.CodO NOT IN (SELECT C3.CodO FROM CONCERTI C3, SALE S3 WHERE C3.CodS=S3.CodS AND S3.Citta= Bologna ); 4

7. 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.DOC-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); 8. 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(D.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; 9. SELECT DISTINCT NOME FROM PERSONA P, GENITORE G WHERE P.NOME=G.NOME-FIGLIO AND P.ETA<10 AND P.NOME 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); 5