SQL ET POSTGRE 5.44 Solution au challenge 4
Voici la correction des trois exercices du challenge 4. Pour le premier, on demandait de sélectionner le titre et le pays des films dont le pays d'origine est les États-Unis, l'Espagne ou la Corée. La solution utilise l'opérateur IN avec une liste de chaînes entre apostrophes :
SELECT titre, pays
FROM film
WHERE pays IN ('États-Unis', 'Espagne', 'Corée');
Solutions des exercices 2 et 3
Le deuxième exercice consistait à récupérer le nom et le prénom des acteurs dont le nom commence par un M et qui sont nés entre le 1er janvier 1940 et le 31 décembre 1960. La requête combine l'opérateur LIKE pour le motif de nom et BETWEEN pour l'intervalle de dates :
SELECT nom, prenom
FROM acteur
WHERE nom LIKE 'M%'
AND date_naissance BETWEEN '1940-01-01' AND '1960-12-31';
Le troisième exercice demandait de lister le nom et le prénom des réalisateurs dont la nationalité est chinoise, brésilienne ou anglaise. Attention à respecter strictement la casse telle qu'elle est stockée dans la table :
SELECT nom, prenom
FROM realisateur
WHERE nationalite IN ('Chinois', 'Brésilien', 'Anglais');
Points clés à retenir de cette correction :
- IN simplifie l'écriture par rapport à plusieurs OR
- LIKE avec % filtre les valeurs commençant par un motif donné
- BETWEEN inclut les bornes : il faut être précis sur les dates limites
- La casse compte dans les comparaisons de chaînes en PostgreSQL
- Toujours terminer une requête par un point-virgule
Bravo à tous ceux qui ont réussi, et félicitations à ceux qui ont essayé même sans aboutir : l'effort de pratique est ce qui ancre les concepts. Rendez-vous dans la vidéo suivante pour la suite du cours.
En résumé
Cette leçon présente les solutions détaillées à un challenge SQL en PostgreSQL. Elle couvre trois requêtes : sélectionner les films selon leur pays d'origine avec IN, rechercher les acteurs dont le nom commence par M et nés entre 1940 et 1969 avec LIKE et BETWEEN, et filtrer les réalisateurs par nationalité. Les explications montrent étape par étape comment construire et exécuter chaque requête SQL.
Points clés
- Utiliser IN pour filtrer plusieurs valeurs (ex: films des USA, Espagne ou Corée)
- Combiner LIKE avec le caractère % pour une recherche par préfixe (ex: noms commençant par M)
- Utiliser BETWEEN pour filtrer sur une plage de dates (ex: naissances 1940-1969)
- Associer plusieurs conditions avec AND (LIKE sur le nom ET BETWEEN sur la date)
- Passer attention à la casse des données lors des filtres (majuscules/minuscules dans la table)
- Valider chaque requête en lançant le script pour vérifier les résultats attendus
Questions fréquentes
Comment sélectionner les films de plusieurs pays avec une seule requête?
Utiliser la clause WHERE avec IN et lister les pays entre parenthèses : WHERE pays IN ('États-Unis', 'Espagne', 'Corée')
Quelle est la différence entre LIKE avec % et BETWEEN?
LIKE cherche des motifs textuels (ex: nom qui commence par 'M'), tandis que BETWEEN filtre sur une plage de valeurs numériques ou de dates (ex: dates_naissance BETWEEN '1940-01-01' AND '1969-12-31')
Pourquoi les nationalités sont-elles en majuscules dans la requête?
Parce que les données sont stockées en majuscules dans la table, donc la requête doit correspondre à la casse utilisée dans la base de données pour filtrer correctement