SQL ET POSTGRE 5.43 Challenge 4

Quatrième et dernier challenge avant la conclusion de cette section sur les requêtes SELECT. Cet exercice rassemble tout ce que vous avez appris dans les vidéos précédentes : alias, concaténation, gestion des NULL, IN, LIKE, BETWEEN, ORDER BY et FETCH FIRST.

Mettre en pratique tous les concepts

L'objectif de ce challenge est de construire des requêtes qui auraient un sens dans une vraie application : afficher des résultats lisibles pour un utilisateur final, pas juste des colonnes brutes. Par exemple, au lieu de présenter prénom et nom dans deux colonnes séparées, on les concatène en un "nom complet" avec un alias propre.

Quelques pistes pour réussir le challenge :

  • Utilisez les alias avec AS pour donner des noms parlants aux colonnes affichées
  • Concaténez prénom et nom avec l'opérateur || ou la fonction CONCAT
  • Filtrez les NULL avec IS NULL ou IS NOT NULL selon le besoin
  • Combinez plusieurs opérateurs avec AND et OR
  • Triez le résultat final avec ORDER BY pour un affichage cohérent
  • Limitez le nombre de lignes retournées avec FETCH FIRST si pertinent

Prenez le temps de bien lire chaque énoncé avant de coder. Identifiez les colonnes nécessaires, les filtres à appliquer et l'ordre d'affichage attendu. Une bonne requête SQL se construit en trois temps : qu'est-ce qu'on veut afficher (SELECT), d'où ça vient (FROM), et selon quels critères et tri (WHERE + ORDER BY).

Mettez la vidéo en pause, ouvrez votre éditeur PostgreSQL et lancez-vous dans le challenge. La vidéo suivante présentera les solutions détaillées avec des commentaires sur les choix techniques. Bonne chance !

Summary

This lesson covers the complete solutions to Challenge 4 in SQL and PostgreSQL. Three exercises are solved: selecting film titles and countries where origin is in a specific set (USA, Spain, South Korea) using the IN clause; filtering actors by name pattern (starting with 'M') and birth year range (1940-1969) using LIKE and BETWEEN operators; and retrieving directors with specific nationalities (Chinese, Brazilian, English) using the IN clause. Each solution demonstrates practical SQL query construction with multiple filtering conditions.

Key points

  • Use the IN operator with parentheses and comma-separated values to filter records matching multiple criteria (e.g., WHERE country IN ('USA', 'Spain', 'South Korea'))
  • Combine LIKE with % wildcard to filter by partial string matches, and use BETWEEN to filter numeric or date ranges (e.g., date_of_birth BETWEEN '1940-01-01' AND '1969-12-31')
  • Pay attention to case sensitivity in table data—field values may be stored in uppercase (e.g., 'Chinois', 'Brésilien', 'Anglais') and must match exactly in comparisons
  • SELECT specific columns (name, title, country) with precise WHERE clauses to retrieve exactly the data needed without over-fetching
  • Always end SQL queries with a semicolon and test incrementally to ensure filtering logic returns the expected results

FAQ

What is the difference between the IN operator and multiple OR conditions?

The IN operator is a more concise and readable way to check if a value matches any in a list. For example, WHERE country IN ('USA', 'Spain') is equivalent to WHERE country = 'USA' OR country = 'Spain', but IN is preferred for clarity and performance.

How do you filter records by a date range in PostgreSQL?

Use the BETWEEN operator with dates in the format 'YYYY-MM-DD'. For example, WHERE date_of_birth BETWEEN '1940-01-01' AND '1969-12-31' returns all records with birth dates within that range, inclusive.

Why must we match the exact case of values when filtering by text fields?

PostgreSQL is case-sensitive by default for string comparisons. If the table stores 'Chinois' with uppercase letters, a query searching for 'chinois' in lowercase will not match. Always verify the exact case of values in your table or use LOWER()/UPPER() functions for case-insensitive comparisons.