Ci-dessous, les différences entre deux révisions de la page.
cours:informatique:dev:db:postgres:fondamentaux_postgresql:245_like [2025/04/06 11:56] – créée yoann | cours:informatique:dev:db:postgres:fondamentaux_postgresql:245_like [2025/04/09 21:11] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag> | {{tag> | ||
- | :TODO: | ||
====== PostgreSQL LIKE ====== | ====== PostgreSQL LIKE ====== | ||
Notes et traduction du tutoriel [[https:// | Notes et traduction du tutoriel [[https:// | ||
+ | |||
+ | On utilise l' | ||
+ | <code sql> | ||
+ | -- Retrouver les enregistrement dont le prénom commence par " | ||
+ | SELECT | ||
+ | first_name, | ||
+ | last_name | ||
+ | FROM | ||
+ | customer | ||
+ | WHERE | ||
+ | first_name LIKE ' | ||
+ | </ | ||
+ | |||
+ | La clause '' | ||
+ | |||
+ | La requête retourne les enregistrements pour lesquels la valeur de '' | ||
+ | |||
+ | On construit un **motif** en combinant des valeurs littérales avec des caractères génériques et en utilisant l' | ||
+ | |||
+ | PosgreSQL propose deux metacaractères génériques : | ||
+ | * le caractère pourcent '' | ||
+ | * Le caractère blanc souligné '' | ||
+ | |||
+ | La syntaxe élémentaire de LIKE est donc : | ||
+ | <code sql> | ||
+ | value LIKE pattern | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code sql> | ||
+ | -- Sélectionne les clients dont le prénom contiennent " | ||
+ | SELECT | ||
+ | first_name, | ||
+ | last_name | ||
+ | FROM | ||
+ | customer | ||
+ | WHERE | ||
+ | first_name LIKE ' | ||
+ | ORDER BY | ||
+ | first_name; | ||
+ | |||
+ | -- Sélectionner les clients dont le prénom ne commence pas par " | ||
+ | SELECT | ||
+ | first_name, | ||
+ | last_name | ||
+ | FROM | ||
+ | customer | ||
+ | WHERE | ||
+ | first_name NOT LIKE ' | ||
+ | ORDER BY | ||
+ | first_name; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== L' | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code sql> | ||
+ | SELECT | ||
+ | first_name, | ||
+ | last_name | ||
+ | FROM | ||
+ | customer | ||
+ | WHERE | ||
+ | first_name ILIKE ' | ||
+ | </ | ||
+ | |||
+ | Dans cet exemple le motif '' | ||
+ | |||
+ | PostgreSQL fournit également des opérateurs qui reproduisent les fonctionnalités de LIKE / ILIKE : | ||
+ | |||
+ | ^ Opérateur ^ Equivalent | | ||
+ | ^ ~~ | LIKE | | ||
+ | ^ ~~* | ILIKE | | ||
+ | ^ !~~ | NOT LIKE | | ||
+ | ^ !~~* | NOT ILIKE | | ||
+ | |||
+ | <code sql> | ||
+ | SELECT | ||
+ | first_name, | ||
+ | last_name | ||
+ | FROM | ||
+ | customer | ||
+ | WHERE | ||
+ | first_name ~~ ' | ||
+ | ORDER BY | ||
+ | first_name; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Échappement des méta-caractères ===== | ||
+ | |||
+ | Parfois les données peuvent contenir les méta-caractères utilisés par LIKE pour décrire le motif '' | ||
+ | |||
+ | <code sql> | ||
+ | -- syntaxe | ||
+ | string LIKE pattern ESCAPE escape_character; | ||
+ | |||
+ | -- exemple | ||
+ | message LIKE ' | ||
+ | </ | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | Dans ce motif : | ||
+ | < | ||
+ | Le premier et le dernier '' | ||
===== Résumé ===== | ===== Résumé ===== | ||
+ | * Utiliser l' | ||
+ | * Utiliser l' | ||
+ | * Utiliser le caractère générique '' | ||
+ | * Utiliser le caractère générique '' | ||
+ | * Utiliser l' | ||
+ | * Utiliser ILIKE pour produire des motifs non sensibles à la chasse de caractère. | ||