L'opérateur PostgreSQL LIKE nous aide à faire correspondre les valeurs de texte aux modèles à l'aide de caractères génériques. Il est possible de faire correspondre l'expression de recherche à l'expression de modèle.
Si une correspondance se produit, l'opérateur LIKE renvoie true. À l'aide de l'opérateur LIKE, il est possible d'utiliser des caractères génériques dans la clause WHERE des instructions SELECT, UPDATE, INSERT ou DELETE.
Dans ce didacticiel PostgreSQL, vous apprendrez ce qui suit:
- Cartes joker
- Syntaxe
- Utilisation de% wildcard
- Utilisation du caractère générique _
- Utilisation de l'opérateur NOT
- Utilisation de pgAdmin
Cartes joker
Seuls deux caractères génériques peuvent être utilisés avec
- Signe de pourcentage (%)
- Souligner (_)
Le signe de pourcentage (%) est utilisé pour représenter zéro, un ou plusieurs caractères ou nombres.
Le caractère générique de soulignement (_) est utilisé pour représenter un caractère ou un nombre. Ces symboles peuvent également être combinés. Si l'opérateur LIKE n'est pas utilisé avec ces deux signes, il agira comme l'opérateur égal.
Syntaxe
Voici la syntaxe de l'opérateur LIKE:
expression LIKE pattern [ ESCAPE 'escape-character' ]
L'expression est une expression de caractère comme une colonne ou un champ.
Le modèle est une expression de caractère avec correspondance de modèle.
Le caractère d'échappement est un paramètre facultatif. Il permet de tester des instances littérales de caractères génériques tels que% et _. S'il n'est pas fourni, le \ sera utilisé comme caractère d'échappement.
Utilisation de% wildcard
Comme nous l'avons indiqué précédemment, le signe% correspond à zéro, un ou plusieurs caractères ou nombres. Considérez le tableau suivant:
Livre:
Nous voulons le livre dont le nom est comme "Lear
… "Pour obtenir ce résultat, nous pouvons exécuter la commande suivante:SELECT *FROMBookWHEREname LIKE 'Lear%';
Cela renverra ce qui suit:
Le livre a été trouvé.
Cherchons un livre "par" dans son nom:
SELECT *FROMBookWHEREname LIKE '%by%';
Cela renverra ce qui suit:
Utilisation du caractère générique _
Comme nous l'avons indiqué précédemment, le signe _ représente un caractère ou un nombre. Il peut être utilisé comme indiqué ci-dessous:
SELECT *FROMBookWHEREname LIKE '_earn%';
Cela renvoie ce qui suit:
Voici un autre exemple:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
Cela renvoie ce qui suit:
Utilisation de l'opérateur NOT
Lorsque l'opérateur LIKE est combiné avec l'opérateur NOT, toute ligne qui ne correspond pas au modèle de recherche est renvoyée. Par exemple, pour voir un livre dont le nom ne commence pas par "post", nous pouvons exécuter la commande suivante:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Cela renvoie ce qui suit:
Un seul livre remplissait les conditions de recherche. Voyons la liste des noms de livres qui n'ont pas de mot "Made":
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Cela renvoie ce qui suit:
3 lignes remplissaient la condition de recherche.
Utilisation de pgAdmin
Voyons maintenant comment les actions peuvent être effectuées à l'aide de pgAdmin.
Utilisation de% wildcard
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
SELECT *FROMBookWHEREname LIKE 'Lear%';
Étape 4) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Pour rechercher un livre "par" dans son nom:
Étape 1) Tapez la commande suivante dans l'éditeur de requête:
SELECT *FROMBookWHEREname LIKE '%by%';
Étape 2) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Utilisation du caractère générique _
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
SELECT *FROMBookWHEREname LIKE '_earn%';
Étape 4) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Étape 5) Pour exécuter le deuxième exemple:
- Tapez la requête suivante dans l'éditeur de requête:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
- Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Utilisation de l'opérateur NOT
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Pour voir tous les livres dont les noms ne commencent pas par "Publier", saisissez la requête dans l'éditeur de requête:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Étape 4) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Pour voir la liste des livres dont les noms ne comportent pas le mot «Made»:
Étape 1) Tapez la requête suivante dans l'éditeur de requête:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Étape 2) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Résumé:
- PostgreSQL LIKE est utilisé pour faire correspondre les valeurs de texte aux modèles à l'aide de caractères génériques.
- La clause LIKE nous permet d'utiliser des caractères génériques dans les instructions SELECT, UPDATE, INSERT ou DELETE.
- Le caractère générique% correspond à une ou plusieurs valeurs. Les valeurs peuvent être des nombres ou des caractères.
- Le caractère générique _ correspond exactement à une valeur. La valeur peut être un caractère ou un nombre.
- L'opérateur LIKE peut être combiné avec l'opérateur NOT pour renvoyer toute ligne qui ne correspond pas au modèle de recherche.
Téléchargez la base de données utilisée dans ce didacticiel