• Non ci sono risultati.

ESERCIZI DI SQL

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCIZI DI SQL"

Copied!
9
0
0

Testo completo

(1)

ESERCIZI DI SQL

Esercitazione III

(2)

10/26/2020 Esercizi di SQL 2

FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città)

Trovare i titoli dei film che non sono mai stati proiettati a Torino.

SELECT f.Titolo FROM FILM AS f

WHERE NOT EXISTS (SELECT *

FROM PROIEZIONI AS p, SALE AS s

WHERE s.Città="Torino" AND f.CodFilm=p.CodFilm AND p.CodSala =s.CodSala)

SELECT f.Titolo FROM FILM AS f

WHERE "Torino" NOT IN (SELECT s.Città

FROM PROIEZIONI AS p, SALE AS s WHERE f.CodFilm=p.CodFilm

AND p.CodSala=s.CodSala)

Esercizio 1 - Soluzione

(3)

FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città)

Trovare i titoli dei film che non sono mai stati proiettati a Torino.

SELECT f.Titolo FROM FILM AS f

WHERE CodFilm NOT IN (SELECT p.CodFilm

FROM PROIEZIONI AS p, SALE AS s WHERE s.CodSala=p.CodSala

AND Città = ‘Torino’);

Esercizio 1 - Soluzione

(4)

10/26/2020 Esercizi di SQL 4

IMPIEGATO (CodImp, Cognome, Nome, CodDip, Stipendio) DIPARTIMENTO (CodDip, Denominazione, Città)

TURNO (CodImp, Data, OraI, OraF)

Selezionare i codici degli impiegati che ricevono uno stipendio maggiore della media degli stipendi del loro dipartimento.

SELECT CodDip FROM Impiegato I1

WHERE Stipendio > (SELECT AVG(Stipendio) FROM Impiegato I2

WHERE I2.CodDip = I1.CodDip)

Esercizio 2 - Soluzione

(5)

ALLOGGIO(CodA, Indirizzo, Città, Superficie, CostoAffittoMensile)

CONTRATTO-AFFITTO(CodC, DataInizio, DataFine, NomePersona, CodA) Trovare il codice, l'indirizzo e la città degli alloggi che hanno una superficie superiore alla superficie media degli alloggi delle città in cui si trovano.

SELECT CodA, Indirizzo, Città FROM ALLOGGIO A1

WHERE Superficie >

(SELECT AVG(Superficie) FROM ALLOGGIO A2

WHERE A2.Città = A1.Città);

Esercizio 3 - Soluzione

SELECT CodA, Indirizzo, Città FROM ALLOGGIO A,

(SELECT AVG(Superficie) AS SupMedia FROM ALLOGGIO

GROUP BY Città) AS MEDIA WHERE A.Città = MEDIA.Città

AND Superficie > SupMedia;

(6)

10/26/2020 Esercizi di SQL 6

FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere) ATTORI (CodAttore, Nome, AnnoNascita, Nazionalità)

RECITA (CodAttore, CodFilm)

Trovare il nome degli attori che hanno recitato in tutti i film di Tarantino.

SELECT A.Nome

FROM ATTORI A, RECITA R, FILM F WHERE R.CodAttore = A.CodAttore AND R.CodFilm = F.CodFilm

AND Regista = "Tarantino"

GROUP BY A.CodAttore, A.Nome

HAVING COUNT(*) = (SELECT COUNT(*) FROM FILM

WHERE Regista = "Tarantino");

Esercizio 4 - Soluzione

(7)

ATLETA (CodA, NomeAtleta, NazioneAtleta)

GARA-NUOTO (CodG, Data, Disciplina, LuogoGara, NazioneGara) CLASSIFICA (CodG, CodA, PosizioneArrivo, Tempo)

Visualizzare codice e nome degli atleti che hanno partecipato a tutte le gare della disciplina '100m dorso' che sono state disputate in Italia, classificandosi sempre nelle prime 10 posizioni.

SELECT CodA, NomeA

FROM ATLETA A, GARA-NUOTO G, CLASSIFICA C WHERE G.CodG = C.CodG

AND A.CodA = C.CodA AND Disciplina = '100m dorso' AND NazioneGara = 'Italia' AND Posizione <= 10

GROUP BY A.CodA, NomeAtleta

HAVING COUNT(*) = (SELECT COUNT(*) FROM GARA-NUOTO

WHERE Disciplina = '100m dorso' AND Nazione = 'Italia’);

Esercizio 5 - Soluzione

(8)

10/26/2020 Esercizi di SQL 8

AUTOVETTURA (Targa, Marca, Modello, Categoria) CLIENTE(NumeroPatente, NomeCliente)

CONTRATTO-NOLEGGIO(CodC, Targa, DataInizio, DataFine, SedeRitiro, SedeRestituzione, Importo, NumeroPatente)

Visualizzare la targa delle autovetture che sono state noleggiate per periodi maggiori del doppio della media delle autovetture dello stesso modello.

SELECT Targa

FROM CONTRATTO-NOLEGGIO C, AUTOVETTURA A WHERE C.Targa = A.Targa

AND DataFine-DataInizio > 2 *

(SELECT AVG(DataFine-DataInizio)

FROM CONTRATTO-NOLEGGIO C1, AUTOVETTURA A1 WHERE C1.Targa = A1.Targa

AND A1.Modello = A.Modello);

Esercizio 6 – Soluzione 1

(9)

AUTOVETTURA (Targa, Marca, Modello, Categoria) CLIENTE(NumeroPatente, NomeCliente)

CONTRATTO-NOLEGGIO(CodC, Targa, DataInizio, DataFine, SedeRitiro, SedeRestituzione, Importo, NumeroPatente)

Visualizzare la targa delle autovetture che sono state noleggiate per periodi maggiori del doppio della media delle autovetture dello stesso modello.

SELECT Targa

FROM CONTRATTO-NOLEGGIO C, AUTOVETTURA A,

( SELECT Modello, AVG(DataFine-DataInizio) AS DurataMedia FROM CONTRATTO-NOLEGGIO C1, AUTOVETTURA A1

WHERE C1.Targa = A1.Targa GROUP BY Modello ) AS T WHERE T.Modello = A.Modello AND A.Targa = C.Targa

AND DataFine-DataInizio > 2 * DurataMedia;

Esercizio 6 – Soluzione 2

Riferimenti

Documenti correlati

Trovare il codice e il nome delle riviste che hanno pubblicato almeno un articolo di argomento ’motociclismo’..

Trovare il codice e il nome delle riviste che hanno pubblicato almeno un articolo di argomento ’motociclismo’... Esercizio 2

CONTRATTO-AFFITTO(CodC, DataInizio, DataFine, NomePersona, CodA) Trovare il codice, l'indirizzo e la città degli alloggi che hanno una superficie superiore alla superficie media

Trovare il nome degli editori per cui almeno 10 pubblicazioni sono state vendute nel 2002 nelle librerie di Roma in più di 2.000 copie.

Visualizzare il nome delle persone che hanno risposto esattamente ad almeno il 70% delle domande contenute in almeno uno dei loro questionari. SELECT

Selezionare in SQL i cognomi dei docenti che hanno tenuto dei corsi in cui sono stati sostenuti esami da almeno 10 studenti... Esercizio

2.4 si vede come nel caso di pieghe “a cuspide” (cerniere non arrotondate, Fig. 2.4a, d, e) si hanno due massimi ben distinti in proiezione stereografica, perché i fianchi

6- Il nome dell’artista ed il titolo delle opere di artisti spagnoli conservate nei musei di Firenze 7- Il codice ed il titolo delle opere di artisti italiani conservate nei