Corsi -> Basi di Dati e Sistemi Informativi I (Canale1)
-> Esercizi SQL 1
Esercizi SQL 1
Dato il seguente schema di base di dati:
NOTE:
- LIBRILIB.Libreria contiene la partita iva della libreria;
- LIBRILIB.CopieV, LIBRILIB.CopieM, LIBRILIB.CopieO rappresentano rispettivamente
per ogni libro le copie vendute, le copie in magazzino e le copie in ordine;
- Libro disponibile: in magazzino;
- Libro che saraí disponibile: in ordine;
- Libro non in vendita: neí in magazzino neí in ordine;
- Per un libro possono esserci piuí autori.
a) Trovare cognomi e nazionalitaí di autori di libri della casa editrice Mc Graw Hill usando unicamente líoperatore IN (senza uso di join).
b) Stessa interrogazione della lettera a) senza usare líoperatore IN.
c) Trovare nomi e cognomi di tutti gli autori di sesso maschile che hanno scritto libri composti da piuí di 300 pagine (per libri scritti da piuí autori, inserire ogni coautore).
d) Trovare titolo ed editore di libri che non sono in vendita nelle
librerie Feltrinelli di Roma (supponiamo che Feltrinelli abbia piuí librerie
nelle grandi cittaí).
e) Trovare nome e indirizzo e cittaí delle librerie in cui sono o saranno
disponibili libri scritti da almeno un autore italiano (utilizzare il join
di non piuí di tre tabelle per ogni eventuale sottointerrogazione).
f) Trovare le librerie (nome e indirizzo) di Roma in cui non sono disponibili
ma lo saranno libri di Umberto Eco (utilizzare il join di non piuí di due
tabelle per ogni eventuale sottointerrogazione).
g) Trovare titolo e nome e cognome dellíautore di libri scritti esclusivamente
da donne e attualmente disponibili in librerie di Roma (utilizzare il join
di non piuí di tre tabelle per ogni eventuale sottointerrogazione). Se
il libro ha piuí autrici, nel risultato restituire una riga per ogni coautrice.
h) Trovare le librerie (nome, indirizzo, cittaí) che hanno venduto piuí di 10 copie di un libro con almeno un autore tedesco, utilizzando il join di non piuí di due tabelle per ogni eventuale sottointerrogazione.
i) Trovare le librerie (nome, indirizzo, cittaí) che hanno in magazzino complessivamente piuí di 50 copie di libri con almeno un autore giapponese (libri con piuí autori giapponesi vanno considerati una sola volta).
j) Spiegare percheí la seguente interrogazione non eí una soluzione dellíesercizio alla lettera i)
SELECT Nome, Indirizzo, Citta
FROM LIBRERIA
WHERE Partita-Iva IN
(SELECT Libreria
FROM LIBRILIB L
WHERE 50 <
(SELECT SUM(CopieM)
FROM LIBRILIB, SCRITTO
WHERE LIBRILIB.Libreria = L.Libreria
AND LIBRILIB.Codice-L = SCRITTO.Codice-L
AND SCRITTO.Codice-A IN
(SELECT Codice-A
FROM AUTORE
WHERE Nazionalita = ëGiapponeseí)))
k) Trovare le librerie (nome, indirizzo, cittaí) che hanno venduto complessivamente
piuí di 50 copie di libri con autori esclusivamente maschi americani.