Exercice SQL corrigé base de donnée cinéma (Partie I)

Requête 1 : Retrouver la liste de tous les films.

SELECT * FROM FILM

Requête 2 : Retrouver la liste des films dont la longueur dépasse 180 min.

SELECT * FROM FILM
WHERE LONGUEUR > 180

Requête 3 : Donner la liste de tous les genres de film.

SELECT DISTINCT GENRE
FROM FILM

Requête 4: Trouver le titre et l’’année des films de science fiction dont le budget dépasse 5.000.000 $.

SELECT TITRE, ANNÉE 
FROM FILM
WHERE GENRE = ‘SciFi’
ANDBUDGET > 5000000

Requête 5 : Donner le nombre de films par genre.

SELECT GENRE, COUNT (*)
FROM FILM
GROUP BY GENRE

Requête 6 : Donner le nombre de films de 1960 par genre.

SELECT GENRE, COUNT (*)
FROM FILM
WHERE ANNÉE = 1960
GROUP BY GENRE

Requête 7 Trouver le titre des films réalisés par Roman Polanski

Forme plate :

SELECT F.TITRE
FROM FILM F, PERSONNE P
WHERE F.RÉALISATEUR = P.NUMP
AND P.PRÉNOM = ‘Roman’
AND P.NOM = ‘Polanski’

Forme imbriquée :

SELECT TITRE
FROM FILM
WHERE RÉALISATEUR IN (
SELECT NUMP
FROM PERSONNE
WHERE PRÉNOM = ‘Roman’
AND NOM = ‘Polanski’ )

Requête 8 : Quels sont les acteurs comiques (nom, prénom) qui ont joué dans un film de Spielberg.

Forme plate :

SELECT PA.PRÉNOM, PA.NOM
FROM PERSONNE PA, DISTRIBUTION D, FILM F, PERSONNE PR
WHERE PA.NUMP = D.NUMA
AND D.SPÉCIALITÉ = ‘Comique’
AND D.NUMF = F.NUMF
AND F.RÉALISATEUR = PR.NUMP
AND PR.NOM = ‘Spielberg’

Forme imbriquée :

SELECT PRÉNOM, NOM
FROM PERSONNE
WHERE NUMP IN (
SELECT NUMA
FROM DISTRIBUTION
WHERE SPÉCIALITÉ = ‘Comique’
ANDNUMF IN (
SELECT NUMF
FROMFILM
WHERE RÉALISATEUR IN (
SELECT NUMP
FROMPERSONNE
WHERE NOM = ‘Spielberg’ ) ) )

Requête 9 : Trouver le titre et l’année du film le plus long.

Forme imbriquée :

SELECT TITRE, ANNÉE
FROM FILM
WHERE LONGUEUR = (
SELECT MAX (LONGUEUR)
FROM FILM )

Requête 10 : Nom et prénom des acteurs qui ont joué Gavroche dans les différentes versions des « Misérables » avec les dates correspondantes.

Forme plate :

SELECT P.PRÉNOM, P.NOM, F.DATE
FROM PERSONNE P, DISTRIBUTION D, FILM F
WHERE P.NUMP = D.NUMA
AND D.RÔLE = ‘Gavroche’
AND G.NUMF = F.NUMF
AND F.TITRE = ‘Les misérables’

Forme imbriquée :

SELECT P.PRÉNOM, P.NOM, F.DATE
FROM PERSONNE P, FILM F
WHERE F.TITRE = ‘Les misérables’
AND (P.NUMP, F.NUMF) IN (
SELECT NUMA, NUMF
FROM DISTRIBUTION
WHERE RÔLE = ‘Gavroche’ )

Requête 11 : Donner le nom et le prénom des réalisateurs qui ont joué dans au moins un de leurs propres films.

Forme plate :

SELECT DISTINCT P.PRÉNOM, P.NOM
FROM PERSONNE P, FILM F, DISTRIBUTION D
WHERE P.NUMP = F.RÉALISATEUR
AND F.NUMF = D.NUMF
AND D.NUMA = F.RÉALISATEUR

Forme imbriquée SQL-92 :

SELECT DISTINCT PRÉNOM, NOM
FROM PERSONNE
WHERE NUMP IN (
SELECT RÉALISATEUR
FROM FILM
WHERE (RÉALISATEUR, NUMF) IN (
SELECT NUMA, NUMF
FROM DISTRIBUTION ) )

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *