Cours
Dans le monde actuel axé sur les données, la capacité de rechercher et de manipuler des données textuelles est indispensable pour les spécialistes des données. La fonction CONTAINS de SQL est un outil puissant pour effectuer des recherches textuelles sophistiquées dans vos bases de données, vous permettant de récupérer des données basées sur des modèles ou des mots-clés spécifiques.
Ce tutoriel vous guidera dans l'utilisation efficace de SQL CONTAINS
, afin que vous puissiez exploiter tout son potentiel pour vos besoins en matière d'analyse de données.
Comprendre SQL CONTAINS
SQL CONTAINS
est utilisé pour les recherches en texte intégral, ce qui vous permet d'interroger les bases de données pour trouver des mots, des phrases ou des modèles spécifiques dans les données textuelles. Il est particulièrement utile pour trouver des informations spécifiques dans de grands champs de texte où l'emplacement exact des données n'est pas connu à l'avance.
Syntaxe et paramètres
La syntaxe de base de SQL CONTAINS
est la suivante :
CONTAINS (column_name, 'search_pattern')
Les principaux éléments sont les suivants :
- Nom de la colonne : Le champ dans lequel la recherche sera effectuée. Il doit s'agir d'une colonne indexée en texte intégral.
- Modèle de recherche : Le texte que vous souhaitez trouver dans la colonne, entre guillemets simples.
Opérateurs et jokers
Pour affiner votre recherche, SQL CONTAINS
prend en charge différents opérateurs :
AND
&OR
: Utilisez-les pour combiner plusieurs termes de recherche.NEAR
: Recherche les mots qui se trouvent à une certaine distance les uns des autres.- ASTERISK (
*
) : Agit comme un joker pour effectuer des recherches où le mot exact peut faire partie d'une chaîne plus large.
Mise en œuvre de SQL CONTAINS
Voyons comment appliquer SQL CONTAINS
à l'aide d'exemples pratiques :
Utilisation de base
Pour rechercher les termes "pomme" et "orange" dans une colonne nommée "fruit", vous pouvez utiliser :
CONTAINS (fruit, '"apple" AND "orange"')
Cette requête renvoie les lignes où les deux termes sont présents dans la colonne "fruit".
Recherches avancées
Pour les recherches plus complexes, la combinaison de CONTAINS
avec d'autres fonctions SQL permet d'effectuer des requêtes complexes, telles que la recherche d'expressions proches les unes des autres ou l'utilisation de caractères génériques pour trouver des variantes d'un mot.
Les recherches avancées peuvent comprendre la combinaison de CONTAINS
avec des opérateurs logiques, l'utilisation de recherches de proximité et l'exploitation de caractères génériques pour découvrir des modèles ou des points de données spécifiques dans les champs de texte.
Combinaison de CONTAINS avec des opérateurs logiques
SQL CONTAINS
prend en charge l'utilisation d'opérateurs logiques tels que AND
, OR
et NOT
pour affiner les recherches sur la base de critères multiples. Par exemple, pour trouver des entrées contenant à la fois "technologie" et "innovation" dans une colonne de texte, vous pouvez structurer votre requête comme suit :
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" AND "innovation"'
);
Inversement, pour trouver des entrées contenant l'un ou l'autre terme, vous utiliserez OR
:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" OR "innovation"'
);
Recherches de proximité
L'opérateur NEAR
est particulièrement utile pour trouver des mots ou des phrases qui apparaissent proches les uns des autres dans le texte. Cette capacité est inestimable dans les contextes où la relation entre les termes affecte leur signification. Par exemple, pour rechercher "climat" près de "changement" à moins de 10 mots l'un de l'autre :
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, 'NEAR((climate, change), 10)'
);
Cette requête donne la priorité aux enregistrements où les termes "climat" et "changement" sont étroitement liés, offrant ainsi des résultats plus pertinents pour des questions de recherche spécifiques.
Recherches par caractères génériques
Les caractères génériques élargissent la portée des recherches en permettant l'inclusion de caractères variables. L'astérisque (*
) sert de joker dans les requêtes CONTAINS
, ce qui permet de rechercher des correspondances partielles. Par exemple, pour trouver des variantes de "compute" telles que "computer", "computing" ou "computation", vous pouvez utiliser :
SELECT
*
FROM
your_table
WHERE
CONTAINS(your_column, '"compute*"');
Cette approche est particulièrement utile lorsque vous cherchez à capturer un large ensemble de données liées à un mot-racine ou lorsque vous n'êtes pas sûr des termes exacts utilisés dans la base de données.
Recherche avancée de motifs
Pour les scénarios nécessitant une recherche de motifs encore plus sophistiquée, envisagez de combiner SQL CONTAINS
avec l'opérateur LIKE
ou des expressions régulières. Alors que CONTAINS
excelle dans la recherche en texte intégral, LIKE
et regex peuvent offrir une certaine souplesse en matière de motifs, notamment pour la recherche de séquences de caractères ou de formats spécifiques (par exemple, des adresses électroniques ou des numéros de téléphone).
Exemple pratique : Combinaison de techniques pour des recherches exhaustives
Prenons l'exemple d'un scénario dans lequel vous devez trouver des entrées de base de données relatives à la technologie environnementale, mais vous n'êtes pas sûr des expressions exactes utilisées dans le texte. Vous pouvez combiner différentes techniques comme suit :
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '("environment*" NEAR "technology*", 10) OR "climate change" OR "renewable energy"'
)
AND your_column LIKE '%sustainability%';
Cette requête montre comment utiliser CONTAINS
pour les recherches de proximité et de caractères génériques, tout en incorporant l'opérateur LIKE
pour la recherche de motifs supplémentaires, ce qui constitue une stratégie solide pour les recherches de texte complexes.
Devenez ingénieur en données
Exemple pratique de SQL CONTAINS dans la science des données
En tant que data scientist, je travaille avec différents types d'ensembles de données, principalement des ensembles de données textuelles pour la satisfaction et le retour d'information des clients. Dans cet exemple particulier, nous rechercherons des mots-clés spécifiques qui peuvent indiquer la satisfaction ou l'insatisfaction dans les commentaires des clients.
ID |
Texte de rétroaction |
SatisfactionScore |
1 |
Je suis très satisfait du service. |
5 |
2 |
Pas satisfait de la qualité du produit. |
2 |
3 |
La livraison a été rapide et le produit fonctionne très bien... |
5 |
4 |
Le service clientèle n'a pas été d'une grande aide et s'est montré impoli. |
1 |
5 |
J'ai été satisfait de mon achat. A recommander ! |
4 |
Tableau CustomerFeedback
Pour utiliserCONTAINS
, il se peut que votre base de données ait besoin d'activer la recherche plein texte.
Le mot-clé CONTAINS
est utilisé pour trouver les enregistrements dont la colonne "FeedbackText" contient le mot "happy".
SELECT
*
FROM
CustomerFeedback
WHERE
CONTAINS(FeedbackText, 'happy');
La requête ci-dessus renvoie les lignes de CustomerFeedback dont la colonne FeedbackText contient le mot "happy".
ID |
Texte de rétroaction |
SatisfactionScore |
1 |
Je suis très satisfait du service. |
5 |
3 |
La livraison a été rapide et le produit fonctionne très bien... |
5 |
5 |
J'ai été satisfait de mon achat. A recommander ! |
4 |
Vous ne pouvez pas utiliser la commande CONTAINS
dans une base de données SQLite. Essayez plutôt d'utiliser :
SELECT
*
FROM
CustomerFeedback
WHERE
FeedbackText LIKE '%happy%';
Au-delà CONTIENT : Correspondance de motifs et manipulation de chaînes de caractères
Si CONTAINS
est un outil puissant pour les recherches textuelles, SQL propose également d'autres techniques pour travailler avec des données textuelles :
Opérateur LIKE
Semblable àCONTAINS
, l'opérateur LIKE
permet la recherche de motifs, mais avec une syntaxe plus simple, utilisant % comme caractère générique. Par exemple, pour trouver tout nom de produit contenant "apple" :
SELECT
*
FROM
Products
WHERE
productName LIKE '%apple%'
Fonctions avancées pour les chaînes de caractères
SQL propose des fonctions telles que LEFT
et REVERSE
pour extraire ou manipuler des parties de chaînes de texte, offrant ainsi des possibilités étendues d'analyse et de manipulation de texte. Pour en savoir plus, consultez notre cours sur le nettoyage des données dans les bases de données SQL Server.
Conclusion
La fonction SQL CONTAINS
et les capacités de manipulation de texte qui lui sont associées sont des outils essentiels pour les spécialistes des données. En comprenant et en appliquant ces techniques, vous pouvez rechercher et analyser efficacement des données textuelles dans vos bases de données, ce qui vous permettra d'obtenir des informations et d'améliorer vos projets d'analyse de données.
N'oubliez pas que l'efficacité de vos requêtes dépend non seulement de la maîtrise de la syntaxe, mais aussi de la compréhension du contexte et de la structure de vos données. Pratiquez avec des ensembles de données réels et des projets SQL et explorez diverses fonctions pour tirer pleinement parti de la puissance de SQL dans l'analyse des données textuelles.
Pour en savoir plus sur les opérateurs SQL et explorer les bases du langage SQL, consultez notre aide-mémoire sur les bases du langage SQL et notre piste de compétences sur les principes fondamentaux du langage SQL.
Devenez ingénieur en données

En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.