Curso
A capacidade de pesquisar e manipular dados de texto é indispensável para cientistas ou engenheiros de dados. A função CONTAINS do SQL é uma ferramenta poderosa para realizar pesquisas de texto sofisticadas em seus bancos de dados, permitindo que você recupere dados com base em padrões específicos ou palavras-chave.
Este tutorial o guiará pelo uso eficaz do SQL CONTAINS
, garantindo que você possa aproveitar todo o seu potencial para as suas necessidades de análise de dados.
Entendendo o SQL CONTAINS
O SQL CONTAINS
é usado para pesquisas de texto completo, permitindo que você consulte bancos de dados em busca de palavras, frases ou padrões específicos nos dados de texto. É particularmente útil para encontrar informações específicas em campos de texto grandes em que o local exato dos dados não é conhecido antecipadamente.
Sintaxe e parâmetros
A sintaxe básica do SQL CONTAINS
é a seguinte:
CONTAINS (column_name, 'search_pattern')
Os principais componentes incluem:
- Nome da coluna: O campo em que a pesquisa será realizada. Deve ser uma coluna indexada de texto completo.
- Padrão de pesquisa: O texto que você deseja encontrar na coluna, entre aspas simples.
Operadores e curingas
Para refinar sua pesquisa, o SQL CONTAINS
oferece suporte a vários operadores:
AND
&OR
: Use-os para combinar vários termos de pesquisa.NEAR
: Encontra palavras que estão próximas umas das outras.- ASTERISK (
*
): Atua como um curinga para realizar pesquisas em que a palavra exata pode fazer parte de uma cadeia de caracteres maior.
Implementação do SQL CONTAINS
Vamos explorar como você pode aplicar o SQL CONTAINS
com exemplos práticos:
Uso básico
Para pesquisar os termos "apple" e "orange" em uma coluna chamada "fruit", você poderia usar:
CONTAINS (fruit, '"apple" AND "orange"')
Essa consulta retorna linhas em que ambos os termos estão presentes na coluna "fruit" (fruta).
Pesquisas avançadas
Para pesquisas mais complexas, a combinação do CONTAINS
com outras funções SQL permite consultas complexas, como a pesquisa de frases próximas umas das outras ou o uso de curingas para encontrar variações de uma palavra.
As pesquisas avançadas podem envolver a combinação de CONTAINS
com operadores lógicos, o uso de pesquisas de proximidade e a utilização de caracteres curinga para descobrir padrões ou pontos de dados específicos em campos de texto.
Combinação de CONTAINS com operadores lógicos
O SQL CONTAINS
oferece suporte ao uso de operadores lógicos, como AND
, OR
e NOT
, para refinar as pesquisas com base em vários critérios. Por exemplo, para encontrar entradas que contenham "tecnologia" e "inovação" em uma coluna de texto, você poderia estruturar a consulta da seguinte forma:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" AND "innovation"'
);
Por outro lado, para localizar entradas que contenham um ou outro termo, você usaria OR
:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" OR "innovation"'
);
Pesquisas de proximidade
O operador NEAR
é particularmente útil para localizar palavras ou frases que aparecem próximas umas das outras no texto. Esse recurso é inestimável para contextos em que a relação entre os termos afeta seu significado. Por exemplo, para pesquisar "clima" próximo a "mudança" em um intervalo de 10 palavras:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, 'NEAR((climate, change), 10)'
);
Essa consulta prioriza os registros em que "clima" e "mudança" estão intimamente relacionados, oferecendo resultados mais relevantes para perguntas de pesquisa específicas.
Pesquisas curinga
Os curingas expandem o escopo das pesquisas, permitindo a inclusão de caracteres variáveis. O asterisco (*
) funciona como um curinga nas consultas CONTAINS
, permitindo que você faça buscas por correspondências parciais. Por exemplo, para encontrar variações de "compute", como "computer", "computing" ou "computation", você pode usar:
SELECT
*
FROM
your_table
WHERE
CONTAINS(your_column, '"compute*"');
Essa abordagem é particularmente útil quando você deseja capturar um conjunto amplo de dados relacionados a uma palavra raiz ou quando não tem certeza dos termos exatos usados no banco de dados.
Correspondência avançada de padrões
Para cenários que exigem uma correspondência de padrões ainda mais sofisticada, considere combinar o SQL CONTAINS
com o operador LIKE
ou expressões regulares. Embora o site CONTAINS
se destaque na pesquisa de texto completo, o LIKE
e o regex podem oferecer flexibilidade de padrões, como a correspondência de sequências de caracteres ou formatos específicos (por exemplo, endereços de e-mail ou números de telefone).
Exemplo prático: Combinação de técnicas para pesquisas abrangentes
Vamos considerar um cenário em que você precisa encontrar entradas de banco de dados relacionadas à tecnologia ambiental, mas não tem certeza das frases exatas usadas no texto. Você pode combinar várias técnicas da seguinte forma:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '("environment*" NEAR "technology*", 10) OR "climate change" OR "renewable energy"'
)
AND your_column LIKE '%sustainability%';
Essa consulta demonstra como você pode usar o site CONTAINS
para pesquisas de proximidade e curinga e, ao mesmo tempo, incorporar o operador LIKE
para correspondência adicional de padrões, oferecendo uma estratégia robusta para pesquisas de texto complexas.
Exemplo prático de SQL CONTAINS em ciência de dados
Como cientista de dados, trabalho com vários tipos de conjuntos de dados, envolvendo principalmente conjuntos de dados de texto para satisfação e feedback do cliente. Neste exemplo específico, procuraremos palavras-chave específicas que possam indicar satisfação ou insatisfação no feedback do cliente.
ID |
FeedbackText |
SatisfactionScore |
1 |
Estou muito satisfeito com o serviço. |
5 |
2 |
Você não está satisfeito com a qualidade do produto. |
2 |
3 |
A entrega foi rápida e o produto funciona muito bem... |
5 |
4 |
O atendimento ao cliente não foi prestativo e foi rude. |
1 |
5 |
Estou feliz com minha compra. Recomendo a você! |
4 |
Tabela CustomerFeedback
Para usar oCONTAINS
, talvez seja necessário que seu banco de dados tenha a Pesquisa de texto completo ativada.
A palavra-chave CONTAINS
é usada para localizar registros em que a coluna "FeedbackText" contém a palavra "happy" (feliz).
SELECT
*
FROM
CustomerFeedback
WHERE
CONTAINS(FeedbackText, 'happy');
A consulta acima retornará as linhas de CustomerFeedback em que a coluna FeedbackText contém a palavra "happy" (feliz).
ID |
FeedbackText |
SatisfactionScore |
1 |
Estou muito satisfeito com o serviço. |
5 |
3 |
A entrega foi rápida e o produto funciona muito bem... |
5 |
5 |
Estou feliz com minha compra. Recomendo a você! |
4 |
Você não pode usar o comando CONTAINS
no banco de dados SQLite. Em vez disso, tente usar:
SELECT
*
FROM
CustomerFeedback
WHERE
FeedbackText LIKE '%happy%';
Além disso, contém: Correspondência de padrões e manipulação de strings
Embora o CONTAINS
seja eficiente para pesquisas de texto, o SQL também oferece outras técnicas para que você trabalhe com dados de texto:
Operador LIKE
Semelhante aoCONTAINS
, o operador LIKE
permite a correspondência de padrões, mas com uma sintaxe mais simples, usando % como curinga. Por exemplo, para localizar qualquer nome de produto que contenha "apple":
SELECT
*
FROM
Products
WHERE
productName LIKE '%apple%'
Funções avançadas de cadeia de caracteres
O SQL fornece funções como LEFT
e REVERSE
para extrair ou manipular partes de cadeias de texto, oferecendo amplos recursos para análise e manipulação de texto. Você pode saber mais sobre isso em nosso curso Limpeza de dados em bancos de dados do SQL Server.
Conclusão
A função SQL CONTAINS
e seus recursos de manipulação de texto associados são ferramentas essenciais para os profissionais de dados. Ao compreender e aplicar essas técnicas, você pode pesquisar e analisar com eficiência os dados de texto em seus bancos de dados, obtendo insights e aprimorando seus projetos de análise de dados.
Lembre-se de que a eficácia de suas consultas depende não apenas do domínio da sintaxe, mas também da compreensão do contexto e da estrutura de seus dados. Pratique com conjuntos de dados do mundo real e projetos SQL e explore várias funções para aproveitar totalmente o poder do SQL na análise de dados de texto.
Para saber mais sobre os operadores SQL e explorar os conceitos básicos de SQL, confira nossa Folha de consulta de conceitos básicos de SQL e a trilha de habilidades SQL Fundamentals.
Torne-se um engenheiro de dados

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.