Qui a joué Tarzan (nom et prénom) ?
Solution :
SELECT prenom, nom_acteur
FROM role, artiste
WHERE nom_role = 'Tarzan'
AND nom_acteur = nom;
- Nom des acteurs de Vertigo.
Solution :
SELECT nom_acteur
FROM film, role
WHERE film.titre = 'Vertigo'
AND film.id_film = role.id_film;
- Quels films peut-on voir au Rex, et à quelle heure ?
Solution :
SELECT titre, heure_debut
FROM seance s, film f
WHERE s.id_film = f.id_film
AND s.nom_cinema='Rex';
- Titre des films dans lesquels a joué Woody Allen. Donner aussi le
rôle.
Solution :
SELECT titre, nom_role
FROM role r, film f
WHERE nom_acteur='Allen'
AND r.id_film = f.id_film;
- Quel metteur en scène a tourné dans ses propres films ?
Donner le nom, le rôle et le titre des films.
Solution :
SELECT titre, nom_role, nom_acteur
FROM role r, film f
WHERE r.nom_acteur = f.nom_realisateur
AND r.id_film = f.id_film;
- Quel metteur en scène a tourné en tant qu'acteur ?
Donner le nom, le rôle et le titre des films où le
metteur en scène a joué.
Solution :
SELECT f2.titre, nom_role, nom_acteur
FROM role r, film f1, film f2
WHERE r.nom_acteur = f1.nom_realisateur
AND r.id_film = f2.id_film;
- Où peut-on voir Shining ? (Nom et adresse du cinéma, horaire).
Solution :
SELECT titre, c.nom_cinema, heure_debut, heure_fin
FROM film f, seance s, cinema c
WHERE f.titre='Shining'
AND s.id_film = f.id_film
AND s.nom_cinema = c.nom_cinema;
- Dans quels films le metteur-en-scène a-t-il le
même prénom que l'un des interprètes ?
(titre, nom du metteur-en-scne, nom de l'inteprète).
Le metteur-en-scène et l'interprète ne doivent
pas être la même personne.
Solution :
SELECT titre, a1.nom ``Metteur en scene'', a2.nom ``Interprete''
FROM film f, role r, artiste a1, artiste a2
WHERE f.id_film = r.id_film
AND r.nom_acteur = a2.nom
AND f.nom_realisateur = a1.nom
AND a1.prenom = a2.prenom;
AND a1.nom != a2.nom
- Où peut-on voir un film avec Clint Eastwood ?
(Nom et adresse du cinéma, horaire).
Solution :
SELECT titre, c.nom_cinema, heure_debut, heure_fin
FROM film f, seance s, cinema c, role r
WHERE r.nom_acteur = 'Eastwood'
AND s.id_film = f.id_film
AND s.nom_cinema = c.nom_cinema
AND s.id_film = r.id_film;
- Quel film peut-on voir dans le 12e arrondissement, dans une salle climatisée ? (Nom du cinéma, No de la salle, horaire, titre du film).
Solution :
SELECT f.titre, c.nom_cinema, salle.no_salle, heure_debut, heure_fin
FROM film f, seance s, cinema c, salle salle
WHERE salle.climatise = 'O'
AND c.arrondissement = 12
AND s.id_film = f.id_film
AND s.nom_cinema = c.nom_cinema
AND salle.nom_cinema = c.nom_cinema
AND s.no_salle = salle.no_salle;
- Liste des cinémas (Adresse, Arrondissement) ayant une salle de plus de 150 places et passant un film avec Bruce Willis.
Solution :
SELECT c.nom_cinema, adresse, arrondissement
FROM seance s, cinema c, salle, role r
WHERE r.nom_acteur = 'Willis'
AND s.id_film = r.id_film
AND s.nom_cinema = c.nom_cinema
AND salle.nom_cinema = c.nom_cinema
AND salle.capacite > 150
AND salle.no_salle = s.no_salle;
- Liste des cinémas (Nom, Adresse) dont TOUTES les salles ont plus de 100 places.
Solution :
SELECT c.nom_cinema, c.adresse
FROM cinema c
WHERE 100 < ALL (SELECT capacite
FROM salle s
WHERE s.nom_cinema = c.nom_cinema);
- Total des places dans les salles du Rex.
Solution :
SELECT sum (capacite)
FROM salle
WHERE nom_cinema = 'Rex';
Resultat:
SUM(CAPACITE)
-------------
410
- Année du film le plus ancien et du film le plus récent.
Solution :
SELECT MIN (annee), MAX (annee)
FROM film;
Resultat:
MIN(ANNEE) MAX(ANNEE)
---------- ----------
1926 1995
- Total des places offertes par cinéma.
Solution :
SELECT nom_cinema, sum (capacite)
FROM salle
GROUP BY nom_cinema;
Resultat:
NOM_CINEMA SUM(CAPACITE)
---------- -------------
Halles 195
Kino 400
Nations 280
Rex 410
- Nom et prénom des réalisateurs, et nombre de films
qu'ils ont tournés.
Solution :
SELECT nom, prenom, count (titre)
FROM artiste a, film f
WHERE f.nom_realisateur = a.nom
GROUP BY nom, prenom;
- (trèfle) Nom des cinémas ayant plus de 1 salle climatisée.
Solution :
SELECT nom_cinema, count(*)
FROM salle
WHERE climatise = 'O'
GROUP BY nom_cinema
HAVING count (*) > 1;
Résultat : le Rex
- (trèfle)
Les artistes (nom, prénom) ayant joué au moins dans trois
films depuis 1985, dont au moins un passe a l'affiche a Paris
(donner ausssi le nombre de films).
Solution :
SELECT nom, prenom , count(*)
FROM artiste, role, film
WHERE nom = role.nom_acteur
AND EXISTS (SELECT 'x' FROM seance s , film f, role r
WHERE s.id_film = f.id_film
AND r.id_film = f.id_film
AND r.nom_acteur = artiste.nom)
AND role.id_film = film.id_film
AND film.annee > 1985
GROUP BY nom, prenom
HAVING count (*) >= 3;
Résultat : Bruce Willis !