· 7 years ago · Jan 28, 2019, 08:52 PM
1CREATE DATABASE IF NOT EXISTS Film;
2
3CREATE TABLE Attori(
4id_attore VARCHAR(50) NOT NULL,
5nominativo VARCHAR(50) NOT NULL,
6nazionalita VARCHAR(40) NOT NULL,
7sesso CHAR(1) NOT NULL,
8data_nascita DATE NOT NULL,
9note VARCHAR(200) NOT NULL,
10CONSTRAINT ChiavePrimaria PRIMARY KEY(id_attore)
11);
12
13
14CREATE TABLE Genere(
15id_genere VARCHAR(50) NOT NULL,
16descrizione VARCHAR(200) NOT NULL,
17CONSTRAINT ChiavePrimaria PRIMARY KEY(id_genere)
18);
19
20CREATE TABLE Premi(
21id_premio VARCHAR(50) NOT NULL,
22descrizione VARCHAR(200) NOT NULL,
23manifestazione VARCHAR(200) NOT NULL,
24CONSTRAINT ChiavePrimaria PRIMARY KEY(id_premio)
25);
26
27CREATE TABLE Musicisti(
28id_musicista VARCHAR(50) NOT NULL,
29nominativo VARCHAR(50) NOT NULL,
30nazionalita VARCHAR(25) NOT NULL,
31data_nascita DATE NOT NULL,
32sesso CHAR(1) NOT NULL,
33note VARCHAR(200) NOT NULL,
34CONSTRAINT ChiavePrimaria PRIMARY KEY(id_musicista)
35);
36
37CREATE TABLE Film(
38id_film VARCHAR(50) NOT NULL,
39titolo VARCHAR(50) NOT NULL,
40anno YEAR NOT NULL,
41regista VARCHAR(50) NOT NULL,
42nazionalita VARCHAR(50) NOT NULL,
43produzione VARCHAR(50) NOT NULL,
44distribuzione VARCHAR(50) NOT NULL,
45durata VARCHAR(50) NOT NULL,
46colore VARCHAR(50) NOT NULL,
47trama VARCHAR(50) NOT NULL,
48valutazione VARCHAR(50) NOT NULL,
49id_genere VARCHAR(50) NOT NULL,
50note VARCHAR(200) NOT NULL,
51CONSTRAINT ChiavePrimaria PRIMARY KEY(id_film)
52);
53
54CREATE TABLE Recita_In(
55id_recitain VARCHAR(50) NOT NULL,
56personaggio VARCHAR(50) NOT NULL,
57valutazione VARCHAR(25) NOT NULL,
58id_attore VARCHAR(50) NOT NULL,
59id_film VARCHAR(50) NOT NULL,
60CONSTRAINT ChiavePrimaria PRIMARY KEY(id_recitain),
61CONSTRAINT CHIAVE2 FOREIGN KEY (id_attore)
62REFERENCES Attori(id_attore),
63CONSTRAINT CHIAVE3 FOREIGN KEY (id_film)
64REFERENCES Film(id_film)
65);
66
67CREATE TABLE Colonne_Sonore(
68id_musicista VARCHAR(50) NOT NULL,
69id_film VARCHAR(50) NOT NULL,
70valutazione VARCHAR(25) NOT NULL,
71brano VARCHAR(50) NOT NULL,
72id_colonnesonore VARCHAR(50) NOT NULL,
73CONSTRAINT ChiavePrimaria PRIMARY KEY(id_colonnesonore),
74CONSTRAINT CHIAVE21 FOREIGN KEY (id_film)
75REFERENCES Film(id_film),
76CONSTRAINT CHIAVE31 FOREIGN KEY (id_musicista)
77REFERENCES Musicisti(id_musicista)
78);
79
80CREATE TABLE Ha_Vinto(
81id_premio VARCHAR(50) NOT NULL,
82id_film VARCHAR(50) NOT NULL,
83valutazione VARCHAR(25) NOT NULL,
84brano VARCHAR(50) NOT NULL,
85id_havinto VARCHAR(50) NOT NULL,
86CONSTRAINT ChiavePrimaria PRIMARY KEY(id_havinto),
87CONSTRAINT CHIAVE232 FOREIGN KEY (id_film)
88REFERENCES Film(id_film),
89CONSTRAINT CHIAVE43 FOREIGN KEY (id_premio)
90REFERENCES Premi(id_premio)
91);
92
93QUERY
94
95SELECT film.titolo,COUNT(ha_vinto.id_premio)
96FROM film,ha_vinto,premi
97WHERE film.id_film=ha_vinto.id_film AND premi.id_premio=ha_vinto.id_premio and ha_vinto.anno='2010'
98---------------------------------------------------------------------------------------------------------------
99SELECT film.titolo
100FROM film,recita_in,attori
101WHERE film.id_film=recita_in.id_film AND recita_in.id_attore=attori.id_attore AND attori.nominativo="Brad Pitt"
102ORDER BY film.anno
103---------------------------------------------------------------------------------------------------------------
104SELECT DISTINCT Film.titolo
105FROM fILM,colonne_sonore,musicisti,ha_vinto,premi
106WHERE musicisti.nazionalita="Italiana" AND musicisti.id_musicista=colonne_sonore.id_musicista AND
107colonne_sonore.id_film=film.id_film AND film.id_film=ha_vinto.id_film AND ha_vinto.id_premio=premi.id_premio
108---------------------------------------------------------------------------------------------------------------
109SELECT DISTINCT attori.id_attore,COUNT(film.id_film)
110FROM film,recita_in,attori
111WHERE attori.id_attore=recita_in.id_attore AND recita_in.id_film=film.id_film
112GROUP BY attori.id_attore
113---------------------------------------------------------------------------------------------------------------
114SELECT COUNT(*),film.nazionalita
115FROM attori,recita_in,film,ha_vinto,premi
116WHERE attori.id_attore=recita_in.id_attore AND film.id_film=recita_in.id_film AND film.id_film=ha_vinto.id_film AND premi.id_premio=ha_vinto.id_premio AND premi.descrizione="Oscar" AND ha_vinto.anno IN ('2000','2001')
117GROUP BY film.nazionalita
118---------------------------------------------------------------------------------------------------------------
119SELECT COUNT(*), attori.id_attore
120FROM attori,recita_in,film
121WHERE attori.id_attore=recita_in.id_attore AND recita_in.id_film=film.id_film AND attori.sesso="F" AND film.anno-YEAR(attori.data_nascita) <'18'
122GROUP BY attori.id_attore
123---------------------------------------------------------------------------------------------------------------
124SELECT DISTINCT musicisti.id_musicista,musicisti.nominativo
125FROM musicisti,colonne_sonore,film,genere,ha_vinto,premi
126WHERE musicisti.id_musicista=colonne_sonore.id_musicista AND colonne_sonore.id_film=film.id_film AND genere.id_genere=film.id_genere
127AND genere.descrizione="Commedia" AND film.id_film=ha_vinto.id_film AND ha_vinto.id_premio=premi.id_premio
128---------------------------------------------------------------------------------------------------------------
129SELECT anno,nominativo,AVG(recita_in.valutazione) AS valutazione FROM attori,recita_in,film
130WHERE attori.id_attore=recita_in.id_attore AND film.id_film=recita_in.id_film AND anno BETWEEN '2000' AND '2010' AND Film.nazionalita="Inglese"
131GROUP BY anno,nominativo