Saltar al contenido principal

SQL CONTIENE: Un tutorial completo

Desbloquea el poder de SQL CONTAINS para búsquedas de texto avanzadas. Sumérgete en los operadores lógicos, las búsquedas por proximidad y los usos de comodines para un análisis preciso de los datos.
Actualizado 16 ene 2025  · 5 min de lectura

La capacidad de buscar y manipular datos de texto es indispensable para los científicos o ingenieros de datos. La función CONTIENE de SQL es una potente herramienta para realizar sofisticadas búsquedas de texto en tus bases de datos, permitiéndote recuperar datos basándote en patrones específicos o palabras clave.

Este tutorial te guiará en el uso eficaz de SQL CONTAINS, asegurándote de que puedes aprovechar todo su potencial para tus necesidades de análisis de datos.

Comprender SQL CONTAINS

SQL CONTAINS se utiliza para búsquedas de texto completo, lo que te permite consultar bases de datos en busca de palabras, frases o patrones específicos dentro de los datos de texto. Es especialmente útil para encontrar información específica en campos de texto grandes en los que no se conoce de antemano la ubicación exacta de los datos.

Sintaxis y parámetros

La sintaxis básica de SQL CONTAINS es la siguiente:

CONTAINS (column_name, 'search_pattern')

Los componentes clave incluyen:

  • Nombre de la columna: El campo donde se realizará la búsqueda. Debe ser una columna indexada de texto completo.
  • Patrón de búsqueda: El texto que deseas encontrar dentro de la columna, entre comillas simples.

Operadores y comodines

Para afinar tu búsqueda, SQL CONTAINS admite varios operadores:

  • AND & OR: Utilízalos para combinar varios términos de búsqueda.
  • NEAR: Busca palabras que estén próximas entre sí.
  • ASTERISK (*): Actúa como comodín para realizar búsquedas en las que la palabra exacta puede formar parte de una cadena mayor.

Implementación de SQL CONTAINS

Exploremos cómo aplicar SQL CONTAINS con ejemplos prácticos:

Uso básico

Para buscar los términos "manzana" y "naranja" dentro de una columna llamada "fruta", podrías utilizar

CONTAINS (fruit, '"apple" AND "orange"')

Esta consulta devuelve filas en las que ambos términos están presentes en la columna "fruta".

Búsquedas avanzadas

Para búsquedas más complejas, combinar CONTAINS con otras funciones SQL permite realizar consultas intrincadas, como buscar frases cercanas entre sí o utilizar comodines para encontrar variaciones de una palabra.

Las búsquedas avanzadas pueden incluir la combinación de CONTAINS con operadores lógicos, el uso de búsquedas por proximidad y el aprovechamiento de caracteres comodín para descubrir patrones o puntos de datos específicos dentro de los campos de texto.

Combinar CONTIENE con operadores lógicos

SQL CONTAINS admite el uso de operadores lógicos como AND, OR y NOT para refinar las búsquedas en función de múltiples criterios. Por ejemplo, para encontrar entradas que contengan tanto "tecnología" como "innovación" dentro de una columna de texto, podrías estructurar tu consulta de la siguiente manera:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '"technology" AND "innovation"'
  );

A la inversa, para encontrar entradas que contengan cualquiera de los dos términos, utilizarías OR:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '"technology" OR "innovation"'
  );

Búsquedas por proximidad

El operador NEAR es especialmente útil para encontrar palabras o frases que aparecen cerca unas de otras dentro del texto. Esta capacidad es inestimable para contextos en los que la relación entre términos afecta a su significado. Por ejemplo, para buscar "clima" cerca de "cambio" con 10 palabras de diferencia:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, 'NEAR((climate, change), 10)'
  );

Esta consulta prioriza los registros en los que "clima" y "cambio" están estrechamente relacionados, ofreciendo resultados más relevantes para preguntas de investigación específicas.

Búsquedas con comodín

Los comodines amplían el alcance de las búsquedas al permitir la inclusión de caracteres variables. El asterisco (*) sirve como comodín en las consultas a CONTAINS, permitiendo la búsqueda de coincidencias parciales. Por ejemplo, para encontrar variaciones de "computar" como "ordenador", "informática" o "computación", podrías utilizar:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(your_column, '"compute*"');

Este enfoque es especialmente útil cuando buscas capturar un amplio conjunto de datos relacionados con una palabra raíz o cuando no estás seguro de los términos exactos utilizados en la base de datos.

Concordancia avanzada de patrones

Para situaciones que requieran una concordancia de patrones aún más sofisticada, considera la posibilidad de combinar SQL CONTAINS con el operador LIKE o expresiones regulares. Mientras que CONTAINS destaca en la búsqueda de texto completo, LIKE y regex pueden ofrecer flexibilidad de patrones, como la búsqueda de secuencias de caracteres o formatos específicos (por ejemplo, direcciones de correo electrónico o números de teléfono).

Ejemplo práctico: Combinar técnicas para búsquedas exhaustivas

Consideremos un escenario en el que necesitas encontrar entradas de bases de datos relacionadas con la tecnología medioambiental, pero no estás seguro de las frases exactas utilizadas en el texto. Podrías combinar varias técnicas como se indica a continuación:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '("environment*" NEAR "technology*", 10) OR "climate change" OR "renewable energy"'
  ) 
  AND your_column LIKE '%sustainability%';

Esta consulta demuestra cómo utilizar CONTAINS para búsquedas por proximidad y con comodines, al tiempo que incorpora el operador LIKE para la concordancia de patrones adicionales, ofreciendo una estrategia sólida para búsquedas de texto complejas.

Ejemplo práctico de SQL CONTAINS en Ciencia de Datos

Como científico de datos, trabajo con varios tipos de conjuntos de datos, principalmente con conjuntos de datos de texto sobre la satisfacción y las opiniones de los clientes. En este ejemplo concreto, buscaremos palabras clave específicas que puedan indicar satisfacción o insatisfacción en las opiniones de los clientes.

ID

FeedbackText

Puntuación de satisfacción

1

Estoy muy contenta con el servicio.

5

2

No estoy satisfecho con la calidad del producto.

2

3

La entrega fue rápida y el producto funciona muy bien...

5

4

El servicio de atención al cliente fue poco servicial y grosero.

1

5

Contenta con mi compra. ¡Lo recomendaré!

4

Tabla CustomerFeedback

Para utilizarCONTAINS, es posible que tu base de datos necesite tener activada la Búsqueda de texto completo.

La palabra clave CONTAINS se utiliza para buscar registros en los que la columna "FeedbackText" contenga la palabra "feliz".

SELECT 
  * 
FROM 
  CustomerFeedback 
WHERE 
  CONTAINS(FeedbackText, 'happy');

La consulta anterior devolverá las filas de OpiniónDelCliente en las que la columna TextoValoración contenga la palabra "feliz".

ID

FeedbackText

Puntuación de satisfacción

1

Estoy muy contenta con el servicio.

5

3

La entrega fue rápida y el producto funciona muy bien...

5

5

Contenta con mi compra. ¡Lo recomendaré!

4

No puedes utilizar el comando CONTAINS en una base de datos SQLite. En su lugar, intenta utilizar

SELECT 
  * 
FROM 
  CustomerFeedback 
WHERE 
  FeedbackText LIKE '%happy%';

Más allá CONTIENE: Comparación de patrones y manipulación de cadenas

Aunque CONTAINS es potente para las búsquedas de texto, SQL también ofrece otras técnicas para trabajar con datos de texto:

Operador LIKE

Similar aCONTAINS, el operador LIKE permite la coincidencia de patrones, pero con una sintaxis más sencilla, utilizando % como comodín. Por ejemplo, para buscar cualquier nombre de producto que contenga "manzana":

SELECT 
  * 
FROM 
  Products 
WHERE 
  productName LIKE '%apple%'

Funciones avanzadas de cadena

SQL proporciona funciones como LEFT y REVERSE para extraer o manipular partes de cadenas de texto, ofreciendo amplias posibilidades de análisis y manipulación de textos. Puedes aprender más sobre ellos en nuestro curso Limpieza de datos en bases de datos SQL Server.

Conclusión

La función SQL CONTAINS y sus capacidades asociadas de manipulación de texto son herramientas esenciales para los profesionales de los datos. Comprendiendo y aplicando estas técnicas, podrás buscar y analizar eficazmente datos de texto en tus bases de datos, desvelando perspectivas y mejorando tus proyectos de análisis de datos.

Recuerda que la eficacia de tus consultas no sólo depende de que domines la sintaxis, sino también de que comprendas el contexto y la estructura de tus datos. Practica con conjuntos de datos y proyectos SQL del mundo real y explora diversas funciones para aprovechar plenamente el poder de SQL en el análisis de datos de texto.

Para obtener más información sobre los operadores SQL y explorar los fundamentos de SQL, consulta nuestra hoja de trucos sobre los fundamentos de SQL y el tema de habilidades Fundamentos de SQL.

Conviértete en Ingeniero de Datos

Demuestra tus habilidades como ingeniero de datos preparado para el trabajo.
Acelerar mi carrera en el sector de los datos

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

Soy un científico de datos certificado que disfruta creando aplicaciones de aprendizaje automático y escribiendo blogs sobre ciencia de datos. Actualmente me centro en la creación de contenidos, la edición y el trabajo con grandes modelos lingüísticos.

Temas

Comienza hoy tu viaje de aprendizaje de SQL

Certificación disponible

curso

Introducción a SQL

2 hr
974.1K
Aprende a crear y consultar bases de datos relacionales utilizando SQL en sólo dos horas.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow