- Exercice Langage SQL : BD Cinéma (Partie1) - Licence Fondamentale d'Informatique
lundi 25 mars 2013

Exercice Langage SQL : BD Cinéma (Partie1)


Énoncé de l'Exercice (BD Cinéma):
Les attributs NUM, NUM, NUMA, NUMC, NUMS sont des identifiants uniques (clés primaires)  pour  respectivement : FILM, PERSONNE, ACTEUR, CINÉMA, SALLE.
Un de ces attributs utilisé comme attribut d’une autre relation est une clé étrangère qui renvoie à la clé primaire de la relation correspondante, par exemple dans GÉNÉRIQUE, NUMF renvoie au NUMF de FILM et est défini sur le même domaine.
De plus, les attributs RÉALISATEUR dans FILM et NUMA dans ACTEUR sont définis sur le domaine des NUMP, et renvoient au NUMP de la personne correspondante.

SQ1

Réaliser les Requêtes suivantes:


Requête 1 : Retrouver la liste de tous les films.
Requête 2 : Retrouver la liste des films dont la longueur dépasse 180 min.
Requête 3 : Donner la liste de tous les genres de film.
Requête 4 : Trouver le titre et l’année des films de science fiction dont le budget dépasse 5.000.000 $.
Requête 5 : Donner le nombre de films par genre.
Requête 6 : Donner le nombre de films de 1960 par genre.
Requête 7 : Trouver le titre des films réalisés par Roman Polanski.
Requête 8 : Quels sont les acteurs comiques (nom, prénom) qui ont joué dans un film de Spielberg.
Requête 9 : Trouver le titre et l’année du film le plus long.
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.
Requête 11 : Donner le nom et le prénom des réalisateurs qui ont joué dans au moins un de leurs propres films.





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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 ) )

0 commentaires:

Enregistrer un commentaire

 
-