SQL ET POSTGRE 5.39 Solution au 3ème challenge

Cette leçon présente la solution du troisième challenge consacré à la table réalisateur. L'objectif était de mettre en pratique DISTINCT, ORDER BY, FETCH FIRST, LIKE et BETWEEN dans des requêtes SELECT concrètes. Voici les requêtes attendues, à exécuter une par une dans PostgreSQL pour vérifier vos propres réponses.

Les requêtes solutions

-- 1. Nationalités distinctes
SELECT DISTINCT nationalite FROM realisateur;

-- 2. Les 5 réalisateurs les plus âgés
SELECT nom, prenom, date_naissance FROM realisateur
ORDER BY date_naissance ASC
FETCH FIRST 5 ROWS ONLY;

-- 3. Prénoms commençant par une voyelle
SELECT nom, prenom FROM realisateur
WHERE prenom LIKE 'A%' OR prenom LIKE 'E%'
   OR prenom LIKE 'I%' OR prenom LIKE 'O%'
   OR prenom LIKE 'U%';

-- 4. Réalisateurs nés entre 1950 et 1970
SELECT nom, prenom, date_naissance FROM realisateur
WHERE date_naissance BETWEEN '1950-01-01' AND '1970-12-31';

La première requête utilise DISTINCT pour ne conserver qu'une occurrence par nationalité. La deuxième combine ORDER BY ASC (du plus ancien au plus récent) avec FETCH FIRST 5 ROWS ONLY pour ne récupérer que les cinq premières lignes triées. La troisième utilise plusieurs conditions LIKE reliées par OR pour cibler les prénoms commençant par chaque voyelle. La dernière encadre la plage de dates avec BETWEEN au format anglais.

  • DISTINCT élimine les doublons.
  • ORDER BY ASC trie du plus petit au plus grand (ou du plus ancien au plus récent pour les dates).
  • FETCH FIRST n ROWS ONLY limite le résultat à n lignes.
  • LIKE et BETWEEN restent essentiels pour filtrer chaînes et intervalles.

Si vos résultats diffèrent légèrement, vérifiez la casse des données et le format des dates dans votre table. Avec ces quatre requêtes, vous maîtrisez désormais l'essentiel des techniques de sélection en SQL. La prochaine étape sera d'apprendre à joindre plusieurs tables ensemble.

En résumé

Cette leçon présente les solutions complètes aux trois défis SQL sur PostgreSQL, couvrant les requêtes essentielles avec les clauses WHERE, IN, LIKE et BETWEEN. Les trois exercices démontrent la sélection de données filtrées par critères multiples (pays, initiales, nationalités), avec les bonnes pratiques de syntaxe PostgreSQL.

Points clés

  • Utiliser WHERE IN (...) pour filtrer selon une liste de valeurs (pays, nationalités)
  • Combiner LIKE avec des patterns (%) pour rechercher par initiale de nom
  • Maîtriser BETWEEN pour les plages de dates (conditions temporelles)
  • Respecter les majuscules/minuscules selon le contenu des tables
  • Syntaxe correcte : parenthèses, guillemets et point-virgule de fermeture

Questions fréquentes

Quelle clause utiliser pour filtrer selon plusieurs valeurs possibles ?

La clause WHERE IN (...) permet de vérifier si une colonne correspond à l'une des valeurs listées entre parenthèses, par exemple WHERE pays IN ('États-Unis', 'Espagne', 'Corée').

Comment rechercher les noms commençant par une lettre spécifique ?

Utilisez l'opérateur LIKE avec un pattern commençant par la lettre majuscule suivie du symbole %, par exemple WHERE nom LIKE 'M%' pour trouver les noms commençant par M.

Comment sélectionner les enregistrements dans une plage de dates ?

La clause BETWEEN définit un intervalle avec AND, par exemple WHERE date_naissance BETWEEN '1940-01-01' AND '1969-12-31' pour les dates entre 1940 et 1969.