********************************** ********* Sol es. 2 ************* ********************************** SCHEMA RELAZIONALE : ATTORI (CodAttore, Nome, AnnoNascita, Nazionalità ); RECITA (CodAttore*, CodFilm*) FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità , Regista, Genere) PROIEZIONI (CodProiezione, CodFilm*, CodSala*, Incasso, DataProiezione) SALE (CodSala, Posti, Nome, Città ) Scrivere le interrogazioni SQL che restituiscono le seguenti informazioni: (da 1 a 7) ********************************************************************************************8 Occorre prima individuare le tabelle necessarie alle varie risposte 1) Il nome delle sale e' in SALE select distinct Nome from SALE where citta = 'Cagliari' 2) Titolo, anno produzione e regista sono in FILM select Titolo from FILM where regista='Pino Pani' and AnnoProduzione>1960 3- Il titolo e regista dei film di fantascienza giapponesi o italiani prodotti dopo il 1980 sono in FILM select Titolo, Regista from FILM where AnnoProduzione> 1980 and Genere='fantascienza' and (Nazionalità ='italiana' or Nazionalità =giapponese') 4) occorre prima trovare il regista di notte gialla da FILM, e poi i suoi film. Si puo' fare annidato o con join e selezione trovo il regista select distinct Regista from FILM where Titolo='Notte Gialla' poi annido usando questo risultato per trovare i suoi film: select Titolo from FILM where Regista = (select distinct Regista from FILM where Titolo='Notte Gialla') Altrimenti: select distinct from f.FILM as f, FILM as r where r.Titolo='Notte Gialla' and f.Regista = r.Regista 5) titolo e genere sono in FILM mentre Citta e' in SALE che non anno attributi in comune. Si collegano tramite PROIEZIONI che contiene anche la DataProiezione con prodotto cartesiano FILE*PROIEZIONI*SALE select distinct f.Titolo f.Genere from FILE f, PROIEZIONI p, SALE s where f.CodFilm = p.CodFilm and p.CodSala = s.CodSala and s.Citta = 'Cagliari' and p.DataProiezione = 2004 6- I nomi delle sale di Cagliari in cui nel 2004 è stato proiettato un film con l’attore “Gino Ghiani” servono SALE, PROIEZIONE, RECITA, ATTORI, FILM selec distinct s.Nome from SALE s, PROIEZIONE p, RECITA r, ATTORI a, FILM f, where a.Nome = 'Gino Ghiani' and p.DataProiezione = 2004 and s.Citta = 'Cagliari' and r.CodAttore = a.CodAttore and f.CodFilm = r.CodFilm and s.CodSala = p.CodSala 7- Il numero dei film proiettati a Cagliari l’anno 2004 occorre contare per film di cagliari e anno 2004, servono SALE, PROIEZIONI, FILM select count(f.CodFilm) from SALE s, PROIEZIONI p, FILM f where s.Citta = 'Cagliari' and s.CodSala = p.CodSala and p.CodFilm = f.CodFilm and p.DataProiezione = 2004 group by f.CodFilm