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.



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.




123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124Requê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 FILMWHERE LONGUEUR > 180 Requête 3 : Donner la liste de tous les genres de film. SELECT DISTINCT GENREFROM 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 FILMWHERE GENRE = ‘SciFi’ANDBUDGET > 5000000 Requête 5 : Donner le nombre de films par genre. SELECT GENRE, COUNT (*)FROM FILMGROUP BY GENRE Requête 6 : Donner le nombre de films de 1960 par genre. SELECT GENRE, COUNT (*)FROM FILMWHERE ANNÉE = 1960GROUP 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.NUMAAND D.SPÉCIALITÉ = ‘Comique’AND D.NUMF = F.NUMFAND F.RÉALISATEUR = PR.NUMPAND 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 ) )

Article publié le 12 Décembre 2011 Mise à jour le Lundi, 12 Décembre 2011 17:48