Maison  >  Article  >  base de données  >  Utilisez les fonctions LIKE et REGEX_LIKE d'Oracle pour implémenter des requêtes floues

Utilisez les fonctions LIKE et REGEX_LIKE d'Oracle pour implémenter des requêtes floues

PHPz
PHPzoriginal
2023-04-04 10:40:232645parcourir

Oracle est un système de gestion de bases de données relationnelles au niveau de l'entreprise développé et vendu par Oracle Corporation aux États-Unis. Il est largement utilisé dans la gestion des données et peut être utilisé pour stocker et manipuler différents types de données. Dans la base de données Oracle, une exigence courante consiste à interroger des données contenant certains mots-clés. Cet article présentera l'utilisation des fonctions LIKE et REGEX_LIKE d'Oracle pour implémenter des requêtes floues.

  1. Fonction LIKE

La fonction LIKE est l'une des fonctions de requête floue les plus basiques d'Oracle. Lorsque vous utilisez la fonction LIKE pour interroger, vous pouvez utiliser % pour représenter n'importe quelle longueur de caractères ou _ pour représenter n'importe quel caractère unique. Par exemple, pour rechercher les enregistrements contenant « apple », vous pouvez utiliser l'instruction SQL suivante :

SELECT * FROM table_name WHERE column_name LIKE '%apple%';

Cette instruction SQL interrogera la colonne column_name dans la table table_name et retournera tous les enregistrements contenant un enregistrement de caractère « pomme ».

Pour interroger des enregistrements commençant ou se terminant par des caractères spécifiques, vous pouvez utiliser l'instruction SQL suivante :

-- Interroger les enregistrements commençant par "apple"
SELECT * FROM table_name WHERE column_name LIKE 'apple%'; enregistrements commençant par "apple" Enregistrements se terminant par "apple"

SELECT * FROM table_name WHERE column_name LIKE '%apple';


Ces instructions renverront la colonne column_name dans la table table_name où le texte commence ou se termine par "apple".

Fonction REGEX_LIKE
  1. La fonction REGEX_LIKE est l'une des fonctions d'expression régulière d'Oracle. Elle est très similaire à la fonction LIKE, mais peut utiliser des règles plus complexes pour faire correspondre le texte. Par exemple, pour interroger des mots contenant trois lettres, "chien", "chat", "chapeau", etc., vous pouvez utiliser l'instruction SQL suivante :

SELECT * FROM table_name WHERE REGEX_LIKE(column_name, '[[:alpha: ]]{ 3}');

Cette instruction SQL interrogera la colonne column_name dans la table table_name et renverra tous les mots contenant trois lettres.

Pour interroger les enregistrements contenant une chaîne spécifique, vous pouvez utiliser l'opérateur barre verticale (|) dans la fonction REGEX_LIKE. Par exemple, pour interroger les enregistrements contenant à la fois « pomme » et « banane », vous pouvez utiliser l'instruction SQL suivante :

SELECT * FROM table_name WHERE REGEX_LIKE(column_name, 'apple|banana');

Cette instruction SQL interrogera la table table_name La colonne column_name renvoie tous les enregistrements contenant "pomme" ou "banane".

Notes
  1. Qu'il s'agisse de la fonction LIKE ou de la fonction REGEX_LIKE, la table ou l'index entier sera analysé lors de l'exécution de la requête, donc dans les scénarios avec des tables volumineuses ou des requêtes fréquentes, les performances peuvent être lentes.

Pour les tables contenant plus de données, vous pouvez envisager d'utiliser un moteur de recherche en texte intégral, tel qu'Oracle Text, pour améliorer les performances des requêtes. De plus, lorsque vous utilisez des expressions régulières, vous devez écrire des correspondances de modèles correctes en fonction de la situation réelle pour éviter des correspondances répétées ou inutiles.

Résumé
  1. Dans Oracle, les fonctions LIKE et REGEX_LIKE sont deux méthodes de requête floues courantes. Utilisez ces deux fonctions pour interroger facilement les enregistrements contenant des caractères spécifiques ou correspondant à des règles spécifiques. Dans les applications pratiques, nous devons choisir en fonction de la taille de la table et des exigences des requêtes pour améliorer les performances des requêtes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn