SQL ET POSTGRE 5.37 Separate

Cette vidéo aborde le mot-clé DISTINCT en PostgreSQL, qui permet de supprimer les doublons d'un résultat SELECT. Par défaut, une requête retourne toutes les lignes correspondant aux critères, y compris celles qui sont identiques. DISTINCT renvoie uniquement les valeurs uniques.

Syntaxe et utilisation

DISTINCT se place juste après SELECT et s'applique à toutes les colonnes sélectionnées. Par exemple, pour obtenir la liste unique des pays d'origine des films :

SELECT DISTINCT pays
FROM films;

Si la table contient cent films avec seulement dix pays différents, DISTINCT renverra dix lignes au lieu de cent. Quand DISTINCT s'applique à plusieurs colonnes, c'est la combinaison qui doit être unique. Par exemple SELECT DISTINCT pays, langue FROM films retournera chaque couple (pays, langue) une seule fois.

DISTINCT est particulièrement utile pour :

  • Construire des listes déroulantes (pays, catégories, statuts)
  • Obtenir des statistiques de variété (nombre de valeurs uniques avec COUNT(DISTINCT colonne))
  • Nettoyer des résultats de jointures qui peuvent dupliquer des lignes
  • Identifier les valeurs distinctes pour des audits qualité

Attention toutefois aux performances : DISTINCT impose un tri ou un hash interne pour identifier les doublons, ce qui peut coûter cher sur de grosses tables. Sur des jeux de données volumineux, il vaut souvent mieux éviter le DISTINCT en repensant la requête (jointures plus précises, GROUP BY) ou en ajoutant des index appropriés.

Summary

This lesson demonstrates solutions to three practical SQL exercises using PostgreSQL fundamentals. Students learn to filter data using the IN clause for multiple values, the LIKE operator with wildcards for pattern matching, and the BETWEEN operator for date ranges. The examples cover real-world scenarios: selecting films by origin countries, filtering actors by name pattern and birth date range, and finding directors by nationality.

Key points

  • Use the IN clause with parentheses to select rows matching multiple specific values, such as WHERE country IN ('United States', 'Spain', 'Korea')
  • Apply the LIKE operator with '%' wildcard for pattern matching to find names starting with a specific letter, for example LIKE 'M%' to find all actors whose last names begin with M
  • Use the BETWEEN operator to filter records within a date range with proper date formatting, for example BETWEEN '1940-01-01' AND '1969-12-31'
  • Combine multiple conditions using AND to create complex filters that simultaneously meet multiple criteria on different columns
  • Pay attention to case sensitivity in string comparisons, as database values may be capitalized differently than expected
  • Ensure proper SQL syntax including semicolon termination and correct column and table names for successful query execution

FAQ

How do I select records from multiple specific countries in PostgreSQL?

Use the IN clause with parentheses and quoted values: SELECT title, country FROM film WHERE country IN ('United States', 'Spain', 'Korea'). List each value separated by commas inside the parentheses.

What does the LIKE operator with '%' wildcard do in SQL?

The '%' wildcard matches any sequence of characters. For example, LIKE 'M%' finds all values starting with 'M', such as all actors whose last names begin with M. The '%' can be placed at the beginning, end, or both sides of the search pattern.

How do I filter records born within a specific date range?

Use the BETWEEN operator with date values: WHERE date_of_birth BETWEEN '1940-01-01' AND '1969-12-31'. This includes both the start and end dates in the results and requires dates in YYYY-MM-DD format.