SQL ET POSTGRE 5.26 : Conditions WHERE

Cette leçon vous apprend à filtrer les résultats d'une requête SELECT grâce à la clause WHERE. La clause se place après FROM et précise une condition que les lignes retournées doivent satisfaire. Dans PostgreSQL, les valeurs textuelles s'écrivent entre apostrophes simples.

Une, deux, trois conditions

On travaille sur la table film de notre base. Pour récupérer uniquement les films japonais :

SELECT * FROM film WHERE pays = 'Japon';

On peut combiner deux conditions avec AND, ce qui exige que les deux soient vraies pour qu'une ligne soit retenue :

SELECT * FROM film WHERE pays = 'Japon' AND realisateur_id = 21;

Avec OR à la place de AND, une ligne est retenue si au moins une des deux conditions est vraie. C'est très différent du AND : on obtient l'union des résultats. La logique : AND = intersection, OR = union.

On peut bien sûr chaîner plus de deux conditions :

SELECT * FROM film
WHERE pays = 'États-Unis'
  AND realisateur_id = 10
  AND duree = 150;

À noter : les valeurs numériques (comme la durée ou les id) s'écrivent sans apostrophes. Pour les chaînes (pays, titres), les apostrophes simples sont obligatoires en PostgreSQL. Dans la prochaine vidéo, nous étendons cette logique avec les opérateurs >, <, >=, <= pour des comparaisons plus fines.

En résumé

Cette leçon enseigne comment utiliser la condition WHERE pour filtrer les données dans une requête SELECT en PostgreSQL. Après un rappel sur la syntaxe de base (SELECT ... FROM table WHERE colonne = valeur), plusieurs exemples pratiques sont présentés avec la table film. La vidéo montre également comment combiner plusieurs conditions avec les opérateurs logiques AND et OR pour des filtres plus complexes.

Points clés

  • La condition WHERE filtre les résultats d'une requête SELECT en fonction de critères spécifiés
  • La syntaxe en PostgreSQL impose des simple quotes autour des valeurs textuelles
  • L'opérateur AND combine plusieurs conditions où TOUTES doivent être vraies simultanément
  • L'opérateur OR permet de retourner les résultats qui satisfont AU MOINS UNE des conditions
  • Plusieurs conditions peuvent être enchaînées dans une même requête WHERE pour créer des filtres complexes

Questions fréquentes

Quelle est la différence entre AND et OR dans une condition WHERE ?

AND requiert que TOUTES les conditions soient satisfaites, tandis que OR retourne les résultats qui satisfont AU MOINS UNE des conditions. Par exemple, WHERE pays = 'japon' AND réalisateur = 21 affichera uniquement les films du Japon avec le réalisateur 21, alors que OR afficherait tous les films du Japon OU tous les films du réalisateur 21.

Pourquoi utiliser des simple quotes autour des valeurs en PostgreSQL ?

En PostgreSQL, les valeurs textuelles (chaînes de caractères) doivent être entourées de simple quotes pour être correctement interprétées par le moteur de base de données. Les valeurs numériques, en revanche, ne nécessitent pas de quotes.

Peut-on utiliser plus de deux conditions dans une requête WHERE ?

Oui, on peut combiner autant de conditions que nécessaire en les reliant avec AND ou OR pour créer des filtres complexes. Par exemple : WHERE pays = 'états-unis' AND réalisateur = 17 AND durée = 150.