SQL ET POSTGRE 5.38 Challenge 3 realisateur

Cette leçon propose un nouveau challenge centré sur la table réalisateur. L'objectif est de mettre en pratique les notions apprises dans les derniers chapitres : la clause DISTINCT pour éliminer les doublons, FETCH FIRST pour limiter le nombre de résultats, ORDER BY pour trier et les opérateurs IN, BETWEEN ou LIKE pour filtrer les lignes.

La table réalisateur contient les champs habituels : nom, prénom, date de naissance, nationalité et un identifiant. Avant de regarder la solution dans la leçon suivante, prenez le temps d'écrire vos propres requêtes et de les exécuter sur votre base. Si une erreur apparaît, lisez attentivement le message renvoyé par PostgreSQL : il indique presque toujours la ligne et la colonne fautive.

Exercices à réaliser

  • Affichez la liste des nationalités distinctes représentées dans la table réalisateur, sans aucun doublon.
  • Récupérez le nom et le prénom des cinq réalisateurs les plus âgés, classés du plus ancien au plus récent par date de naissance.
  • Sélectionnez les réalisateurs dont le prénom commence par une voyelle, en utilisant la clause LIKE et un motif adapté.
  • Comptez ou listez les réalisateurs nés entre 1950 et 1970 à l'aide de l'opérateur BETWEEN sur la date de naissance.

Pensez à combiner plusieurs clauses dans une même requête, par exemple un WHERE et un ORDER BY suivi d'un FETCH FIRST. Respectez la casse des valeurs telles qu'elles sont stockées (souvent avec une majuscule initiale pour les nationalités) et n'oubliez pas le point-virgule final qui termine toute instruction SQL.

Ce challenge est une excellente occasion de consolider votre compréhension des requêtes de sélection avant de passer aux jointures et aux fonctions d'agrégation. La solution complète sera détaillée dans la leçon 5.39. Bonne pratique !

En résumé

Cette leçon présente les solutions de trois défis SQL progressifs utilisant PostgreSQL. Elle couvre les requêtes SELECT avec clauses WHERE, opérateurs IN et LIKE, ainsi que les opérateurs de plage BETWEEN pour filtrer des données à partir de trois tables (film, acteurs, réalisateur).

Points clés

  • Utiliser l'opérateur IN pour filtrer selon plusieurs valeurs spécifiques (pays, nationalités)
  • Combiner l'opérateur LIKE avec le caractère joker (%) pour les recherches partielles (noms commençant par une lettre)
  • Utiliser l'opérateur BETWEEN pour filtrer les résultats dans une plage de dates définie
  • Structurer les requêtes SELECT avec des clauses WHERE imbriquées (AND, IN, BETWEEN) pour des critères multiples
  • Respecter la casse exacte des données stockées en base pour que les comparaisons fonctionnent correctement

Questions fréquentes

Quelle est la différence entre l'opérateur IN et LIKE ?

L'opérateur IN compare une colonne avec une liste de valeurs exactes (SELECT ... WHERE pays IN ('États-Unis', 'Espagne')), tandis que LIKE effectue une recherche de motif avec le caractère joker % pour les recherches partielles. LIKE 'M%' trouve tous les noms commençant par M.

Comment filtrer une plage de dates en PostgreSQL ?

Utilisez l'opérateur BETWEEN avec le format de date YYYY-MM-DD : WHERE date_de_naissance BETWEEN '1940-01-01' AND '1969-12-31'. PostgreSQL reconnaît automatiquement ce format de date.

Pourquoi ma requête retourne-t-elle des résultats vides ?

Vérifiez la casse exacte des valeurs stockées en base (ex: 'Chinois' avec majuscule). Assurez-vous aussi que les noms de colonnes et de tables correspondent exactement à votre schéma PostgreSQL.