Accéder au contenu principal

SQL CONTIENT : Un tutoriel complet

Exploitez la puissance de SQL CONTAINS pour des recherches de texte avancées. Découvrez les opérateurs logiques, les recherches de proximité et l'utilisation de caractères génériques pour une analyse précise des données.
Actualisé 4 oct. 2024  · 5 min de lecture

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

Devenez un ingénieur de données grâce à l'apprentissage avancé de Python
Commencez à apprendre gratuitement

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

Faites la preuve de vos compétences en tant qu'ingénieur en données prêt à l'emploi.

Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

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.

Sujets

Commencez dès aujourd'hui votre voyage d'apprentissage de SQL !

Certification disponible

cours

Introduction à SQL

2 hr
799.6K
Apprenez à créer et à interroger des bases de données relationnelles à l'aide de SQL en seulement deux heures.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

Voir plusVoir plus