Oracle COMME

Oracle Comme



Dans Oracle et d'autres bases de données relationnelles, la correspondance de modèles est une fonctionnalité populaire qui vous permet de rechercher des modèles de chaîne à l'aide de syntaxes spéciales. Par exemple, vous pouvez rechercher une sous-chaîne dans un grand ensemble de chaînes à l'aide d'opérateurs et de fonctions de correspondance de modèles.

Cela le rend très utile pour créer des clauses de recherche simples sans entraîner de pénalités de performances significatives sur la base de données.







Dans ce didacticiel, vous rencontrerez l'opérateur LIKE dans Oracle pour effectuer des requêtes de correspondance de modèles.



Opérateur Oracle LIKE

L'opérateur LIKE dans Oracle vous permet de rechercher un modèle spécifique dans une colonne donnée. Par exemple, vous pouvez l'utiliser pour trouver toutes les lignes où le prénom d'un client commence par le modèle 'Ja'.



Vous trouverez souvent cet opérateur utilisé conjointement avec d'autres clauses SQL, telles que la clause WHERE, pour filtrer nos résultats en fonction d'un modèle spécifique.





Nous pouvons exprimer la syntaxe de l'opérateur LIKE en SQL comme indiqué ci-dessous :

expression LIKE modèle [ S'ÉCHAPPER 'caractère d'échappement' ]



  1. Le paramètre expression spécifie la colonne dans laquelle vous souhaitez effectuer la recherche.
  2. Le paramètre pattern définit le modèle spécifique que vous souhaitez rechercher. Le modèle spécifié peut contenir des caractères génériques tels que % et _ pour correspondre à n'importe quel nombre de caractères ou à un seul caractère, respectivement.
  3. Nous pouvons également inclure la clause ESCAPE pour spécifier un caractère d'échappement utilisé pour rechercher les caractères génériques réels.

Exemples d'opérateur Oracle LIKE

Les exemples suivants montrent comment utiliser l'opérateur LIKE dans une table Oracle.

Supposons que nous ayons une table contenant des informations sur les clients, comme indiqué ci-dessous :

Exemple 1 – Utilisation des caractères génériques %

Nous pouvons utiliser les caractères génériques % pour faire correspondre toutes les chaînes de zéro ou plusieurs caractères. Par exemple, nous pouvons trouver toutes les entrées d'une table contenant le nom 'Will%'.

Prenez le tableau des employés ci-dessous :

sélectionner prénom, nom, salaire
des EMPLOYÉS
où FIRST_NAME aime 'Sera%'
trier par prénom ;

La requête précédente sélectionne les colonnes prénom, nom et salaire de la table des employés et classe les valeurs résultantes par la colonne prénom.

Nous combinons également une clause where en conjonction avec un opérateur LIKE avec les caractères génériques % pour ne récupérer que les lignes où le prénom commence par « Will ».

Cela devrait renvoyer les lignes comme suit :

Nous pouvons également utiliser le caractère générique % pour récupérer les lignes qui se terminent par un modèle spécifique.

Un exemple est illustré ci-dessous :

sélectionner prénom, nom, salaire
des EMPLOYÉS
où FIRST_NAME aime '%est'
trier par prénom ;

Dans ce cas, la requête précédente doit renvoyer toutes les lignes où le prénom se termine par 'er'. Un exemple de valeur résultante est illustré ci-dessous :

L'opérateur LIKE de la base de données Oracle est sensible à la casse par défaut, il est donc essentiel de garder cela à l'esprit lors de la recherche de modèles spécifiques. Vous pouvez utiliser d'autres fonctions, telles que lower et upper, pour annuler ce comportement.

Exemple 2 – Utilisation de la clause d'échappement

L'exemple suivant montre comment utiliser la clause ESCAPE dans l'opérateur Oracle LIKE :

sélectionner prénom, nom, salaire, commission_pct
des EMPLOYÉS
où commission_pct aime 'vingt\%' s'échapper '\' ;

La requête précédente sélectionne les colonnes prénom, nom, salaire et commission_pct de la table EMPLOYEES. La clause WHERE utilise l'opérateur LIKE avec la clause ESCAPE pour récupérer les enregistrements où la colonne commission_pct contient la chaîne '20%' (avec un caractère % littéral, pas un caractère générique).

Dans ce cas, nous échappons le caractère % avec un caractère barre oblique inverse (\) lors de la recherche de la chaîne 20 %. Cela permet à l'opérateur LIKE de rechercher la chaîne exacte '20 %' au lieu de traiter le caractère % comme un caractère générique.

Cette requête renverrait toutes les lignes de la table EMPLOYEES où la colonne commission_pct contient la chaîne exacte '20 %', ainsi que les colonnes first_name, last_name et salaire pour ces lignes.

Conclusion

Dans cet article, vous avez appris à utiliser l'opérateur LIKE dans les bases de données Oracle pour rechercher des modèles spécifiques dans une table. Plusieurs exemples sont fournis pour mettre en évidence l'utilisation de caractères génériques et la clause ESCAPE.