PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Exemples

⚡ Résumé intelligent

PostgreSQL LIKE compare du texte à des modèles en utilisant deux caractères génériques : le signe pourcentage et le trait de soulignement. Ce tutoriel explique comment utiliser LIKE et NOT LIKE dans les instructions SELECT, avec des exemples concrets en psql et pgAdmin pour chaque cas.

  • 🔍 Core Operator: LIKE compare une colonne ou une expression à un modèle générique et renvoie vrai en cas de correspondance.
  • ???? Deux jokers : % correspond à zéro ou plusieurs caractères ; _ correspond exactement à un caractère.
  • ✋ Correspondance inverse : Combinez NOT et LIKE pour renvoyer les lignes qui répondent à ces critères. pas Respectez le modèle.
  • ️ Deux interfaces : Exécutez les mêmes requêtes depuis la ligne de commande psql ou graphiquement dans pgAdmin.
  • (I.e. Personnage d'évasion : Utilisez la clause ESCAPE pour faire correspondre les caractères littéraux % ou _ à l'intérieur du modèle.
  • 🤖 Boost IA : Les outils de bases de données IA traduisent les besoins de recherche en langage clair en modèles LIKE et suggèrent ILIKE lorsqu'une correspondance insensible à la casse est requise.

PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Exemples

Le PostgreSQL COMME L'opérateur LIKE compare les valeurs textuelles à des modèles à l'aide de caractères génériques. Si l'expression de recherche correspond au modèle, LIKE renvoie trueLes caractères génériques fonctionnent dans le WHERE clause de SELECT, UPDATE, INSERT, DELETE.

Quels sont PostgreSQL Des jokers ?

PostgreSQL prend en charge deux caractères génériques LIKE :

  • Signe de pourcentage (%): Correspond à zéro, un ou plusieurs caractères ou chiffres.
  • Soulignement (_): correspond exactement à un caractère ou un chiffre.

Les deux symboles peuvent être combinés au sein d'un même motif. Si LIKE est utilisé sans aucun caractère générique, il se comporte comme le signe égal (=) opérateur.

PostgreSQL Syntaxe LIKE

La syntaxe de base de LIKE est :

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • expression — une expression de caractères, généralement un nom de colonne ou de champ.
  • modèle — une expression de caractères contenant des caractères génériques.
  • caractère d'échappement — facultatif. Permet de faire correspondre littéralement % or _ caractères. Lorsqu'il est omis, la barre oblique inverse (\) est le caractère d'échappement par défaut.

PostgreSQL J'AIME avec le symbole générique %

Le % Le signe correspond à zéro, un ou plusieurs caractères. Prenons l'exemple suivant. Book table:

Tableau de livre d'exemples utilisé dans les exemples LIKE

Pour trouver les livres dont le titre commence par « Lear », exécutez la requête ci-dessous.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

La requête renvoie :

LIKE Lear% résultat de la requête renvoyant des livres correspondants

Pour trouver des livres dont le titre contient « par » n’importe où :

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

La requête renvoie :

Résultat de la requête LIKE %by% avec livres correspondants

PostgreSQL J'AIME avec le caractère générique _

Le _ Le signe correspond à un seul caractère. La requête suivante trouve les noms dont le premier caractère est une lettre unique, suivie de « earn » puis d’un suffixe quelconque :

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

La requête renvoie :

Résultat de requête LIKE _earn% avec un préfixe d'un seul caractère correspondant

Autre exemple : faire correspondre tout texte se terminant par « Débutant » suivi d’un caractère supplémentaire :

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

La requête renvoie :

LIKE %Beginner_ résultat de requête correspondant au dernier caractère unique

PostgreSQL PAS COMME Operator

Combinez LIKE et NOT pour renvoyer les lignes qui correspondent. pas Respectez le modèle. Par exemple, listez tous les livres dont le titre ne commence pas par « Post » :

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

La requête renvoie :

PAS COMME Post% résultat excluant les livres qui commencent par Post

Un seul livre remplit la condition. Maintenant, listez tous les livres dont le nom correspond à cette condition. pas contiennent le mot « Fabriqué » :

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

La requête renvoie :

PAS COMME le résultat de %Made% qui renvoie trois livres correspondants

Trois lignes satisfont à la condition.

Utilisation de LIKE avec pgAdmin

Ces mêmes requêtes peuvent également être exécutées graphiquement dans l'outil de requêtes de pgAdmin.

% Caractère générique dans pgAdmin

Étape 1) Connectez-vous à pgAdmin.

Étape 2) Dans la barre de navigation à gauche, cliquez sur Bases de données, puis clique Demo.

Arborescence de navigation pgAdmin avec bases de données et démo étendue

Étape 3) Saisissez la requête dans l'éditeur de requêtes :

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Étape 4) Cliquez à nouveau Exécution.

Outil de requête pgAdmin avec le bouton Exécuter de la barre d'outils

Le volet de résultats affiche les livres correspondants :

Volet de résultats pgAdmin pour la requête LIKE Lear%

Pour rechercher un livre dont le titre contient « par » :

Étape 1) Saisissez ce qui suit dans l'éditeur de requêtes :

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Étape 2) Cliquez à nouveau Exécution.

L'outil de requête pgAdmin exécute une requête LIKE %by%

Le volet des résultats affiche :

Volet de résultats pgAdmin pour la requête LIKE %by%

_ Caractère générique dans pgAdmin

Étape 1) Connectez-vous à pgAdmin.

Étape 2) Dans la barre de navigation à gauche, cliquez sur Bases de données, puis clique Demo.

Arborescence de navigation pgAdmin affichant l'arborescence des bases de données

Étape 3) Saisissez la requête dans l'éditeur de requêtes :

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Étape 4) Cliquez à nouveau Exécution.

L'outil de requête pgAdmin exécute une requête LIKE _earn%

Le volet des résultats affiche :

Volet de résultats pgAdmin pour la requête LIKE _earn%

Étape 5) Exécutez le deuxième exemple :

  1. Saisissez la requête dans l'éditeur de requêtes :
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Cliquez à nouveau Exécution.

L'outil de requête pgAdmin exécute une requête de type %Beginner_

Le volet des résultats affiche :

Volet de résultats pgAdmin pour la requête LIKE %Beginner_

PAS COMME dans pgAdmin

Étape 1) Connectez-vous à pgAdmin.

Étape 2) Dans la barre de navigation à gauche, cliquez sur Bases de données, puis clique Demo.

Arborescence de navigation pgAdmin pour l'exemple « NE PAS AIMER »

Étape 3) Pour afficher la liste de tous les livres dont le titre ne commence pas par « Post », tapez :

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Étape 4) Cliquez à nouveau Exécution.

L'outil de requête pgAdmin n'exécute PAS une requête Post%

Le volet des résultats affiche :

Volet de résultats pgAdmin pour la requête NOT LIKE Post%

Détails supplémentaires des résultats pgAdmin pour la requête NOT LIKE

Liste des livres dont le titre ne contient pas le mot « Fabriqué » :

Étape 1) Saisissez ce qui suit dans l'éditeur de requêtes :

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Étape 2) Cliquez à nouveau Exécution.

L'outil de requête pgAdmin exécute une requête qui n'est PAS COMME %Made%

Le volet des résultats affiche :

Volet de résultats pgAdmin pour la requête NOT LIKE %Made%

Téléchargez la base de données utilisée dans ce tutoriel.

FAQ

LIKE est sensible à la casse, tandis que ILIKE effectue une correspondance insensible à la casse. ILIKE est un PostgreSQL Extension. Par exemple, le nom ILIKE 'lear%' correspond à « Learn » et « LEAR ». Utilisez ILIKE lorsque la casse de la saisie utilisateur est imprévisible.

Utilisez la clause ESCAPE pour déclarer un caractère d'échappement, puis préfixez-le avec le caractère générique littéral. Par exemple, WHERE code LIKE '50!%%' ESCAPE '!' trouve les valeurs commençant par « 50% » car le point d'exclamation permet d'échapper le signe pourcentage.

Utilisez LIKE pour les correspondances simples de préfixes, suffixes ou sous-chaînes. Passez aux expressions régulières POSIX (~ et ~*) lorsque vous avez besoin de classes de caractères, d'alternatives ou de quantificateurs. Les expressions régulières sont plus puissantes, mais généralement plus lentes que LIKE pour les motifs simples.

Oui. AI Des assistants tels que les copilotes text-to-SQL traduisent des invites comme « trouver les clients dont l'adresse e-mail contient acme » en name LIKE '%acme%' et expliquent la logique des caractères génériques, accélérant ainsi la génération de rapports ad hoc.

L'IA générative analyse le plan de requête, recommande un index trigramme (pg_trgm) pour les recherches LIKE avec caractère générique en début de chaîne et réécrit les motifs qui empêchent l'utilisation de l'index. Ainsi, les analyses complètes de table sont transformées en recherches de quelques millisecondes sur les grandes tables. PostgreSQL les tables.

Résumez cet article avec :