Récupérez la base de données et l'importer sous MySQL.

  1. Télécharger la base des films : films.zip (12 Mo).
  2. Décompressez le fichier
  3. Copier/coller le code source sql dans SQL de l'interface PhpMyAdmin
  4. Lancez votre phpMyAdmin local dans votre navigateur.

Présentation des tables.

Cette base a été piratée sur le site d'Allociné en avril 08. Elle contient plusieurs dizaines de milliers de films, depuis la création du cinéma jusqu'à avril 2008. Elle est structurée selon le modèle logique suivant :

Ecrire les requêtes SQL qui donnent les résultats demandés.

Cours SELECT 1 : Where, renommage de colonnes, tris, jointures, expressions, Like, Distinct

Les films produits en 2010, triés par ordre alphabétiques (film_anneeproduction, film_titre).

Votre réponse n°1

Les meilleurs films de tous les temps : films triés par critique spectateurs (film_etoilesspectateurs).

Votre réponse n°2

Affichez les films pas encore sortis au cinéma (film_datesortie = 'prochainement').

Votre réponse n°3

Films produits en 2009 qui ne sont pas des films d'horreur (film_genre ne contient pas 'horreur' : si vous avez un doute alors consultez le contenu de ce champ, pour bien comprendre comment il est géré).

Votre réponse n°4

Les films passionants qui parlent d'informatique (film_synopsis contient 'informatique') ?

Votre réponse n°5

Quel sont les acteurs qui jouent dans District 9 (filmart_type="acteur") (problème : la requête ne renvoie aucune valeur car la base est incomplète) ?

Votre réponse n°6

Quel est le réalisateur de Taxi (filmart_type="realisateur") ?

Votre réponse n°7

Cours SELECT 2 : Gestion des dates.

(Pas de date dans cette base de données. La date de sortie du film est au format texte, donc difficilement exploitable)

Cours SELECT 3 : IN, NOT IN.

Afficher les films non américains (le film n'est pas associé à la nationalité : nat_pays="americain").

Votre réponse n°8

Afficher les films de Luc Besson dans lesquels Jean Réno ne joue pas (la requête doit renvoyer 'Le cinquième élément', 'Les Minimoys', etc. Elle ne doit pas afficher 'Le grand bleu', 'Léon'. Parce que la base est incomplète, elle va afficher par erreur : 'Nikita' et 'Subway' dans lesquels Jean Réno jouequand même, mais pas en acteur principal).

Votre réponse n°9

Afficher les acteurs qui ont joué dans des films français mais pas dans des films américains.

Votre réponse n°10

Cours SELECT 4 : fonctions de regroupement, Group By, Having.

Combien y a-t-il de films au total dans la base ?

Votre réponse n°11

Combien y a-t-il de réalisateurs au total dans la base ? (filmart_type = 'realisateur')

Votre réponse n°12

Nombre de films réalisés par Steven Spielberg ?

Votre réponse n°13

Nombre de films dont le genre contient Science fiction ? (film_genre contient 'science fiction')

Votre réponse n°14

Date du tout premier film réalisé par Peter Jackson ?

Votre réponse n°15

Comptez le nombre de films par nationalité, trié par nationalité.

Votre réponse n°16

Pour chaque année, triée par année : nombre de films produits cette année-là (film_anneeproduction). Ajoutez LIMIT 0, 200 pour voir toutes les années.

Votre réponse n°17

Comptez le nombre de films par acteur (tri : affichez en premier les acteurs qui en ont tourné le plus, n'affichez pas les acteurs qui n'ont tourné qu'un seul film).

Votre réponse n°18

Comptez le nombre de films par réalisateur (tri : affichez en premier les réalisateurs qui en ont réalisé le plus, n'affichez pas les réalisateurs qui ont réalisé qu'un ou deux films).

Votre réponse n°19

Cours SELECT 5 : auto-jointures (ou jointures réflexives).

Afficher les artistes qui jouent à la fois dans des films français et dans des films américains.

Votre réponse n°20

Afficher les films du même réalisateur que le film Avatar.

Votre réponse n°21

Affichez les acteurs ayant joué dans des films de Steven Spielberg, affichez également le film correspondant et l'année de production.

Votre réponse n°22

Regroupements de regroupements, Vues.

Rappel sur... les vues.

  • Une vue se construit à partir du résultat d'une requête :
    create view nom-de-la-vue as select ...

    Elle peut ensuite s'utiliser comme une table :
    Select * from nom-de-la-vue

  • Si vous avez fait une erreur en créant votre vue, vous allez devoir la recréer, mais avant il faut la supprimer ainsi :
    Drop view nom-de-la-vue

  • N'oubliez pas de bien nommer votre vue, ainsi que les champs qui la composent, pour pouvoir la réutiliser plus facilement par la suite.

Quel est le réalisateur qui a réalisé le plus de films ?

Votre réponse n°23

Parmi les réalisateurs qui ont tourné 4 films ou plus, quel est celui qui a la meilleure critique spectateur sur l'ensemble de ses films ?
(Attention pour ceux qui ont déjà répondu à cette question : je l'ai complètement reformulée)

Votre réponse n°deg;24

123