- 1 1. Introdução
- 2 2. Sintaxe Básica do Operador BETWEEN
- 3 3. Filtragem de Intervalo Numérico
- 4 4. Filtragem de Intervalo de Data
- 5 5. Filtragem de Intervalo de String
- 6 6. Notas Importantes sobre o Operador BETWEEN
- 7 7. Consultas Práticas e Casos de Uso
- 8 8. Exemplos Visuais de Consultas
- 9 9. Resumo
- 10 10. Referências
1. Introdução
Um dos elementos chave para executar consultas de forma eficiente em bancos de dados MySQL é o operador BETWEEN. Este operador é extremamente útil ao verificar se os dados estão dentro de um intervalo específico. Ele pode ser aplicado a números, datas e strings, tornando‑o uma ferramenta poderosa para filtrar e recuperar dados de forma eficiente. Neste artigo, explicaremos como usar o operador BETWEEN do MySQL, forneceremos exemplos práticos e destacaremos pontos importantes a serem considerados.
2. Sintaxe Básica do Operador BETWEEN
O que é o Operador BETWEEN?
O operador BETWEEN é usado na cláusula WHERE para verificar se o valor de uma coluna está dentro de um intervalo especificado. Sua sintaxe básica é a seguinte:
SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;
Por exemplo, se uma tabela armazena as idades dos funcionários, você pode usar este operador para extrair apenas aqueles dentro de um intervalo de idade específico.
Forma Negativa: NOT BETWEEN
Se você precisar pesquisar valores fora do intervalo especificado, pode usar a forma negativa NOT BETWEEN:
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;
3. Filtragem de Intervalo Numérico
Usando BETWEEN com Números
O operador BETWEEN é muito útil ao filtrar intervalos numéricos. Por exemplo, se você quiser extrair funcionários com salários entre 50.000 e 100.000, pode escrever a consulta da seguinte forma:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Dados de Exemplo:
employee_id | name | salário |
|---|---|---|
1 | Sato | 45000 |
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
4 | Tanaka | 120000 |
Resultado:
employee_id | name | salário |
|---|---|---|
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
Nesta consulta, apenas os funcionários cujos salários estão entre 50.000 e 100.000 são selecionados.
Operadores de Comparação vs. BETWEEN
A mesma condição também pode ser expressa com operadores de comparação, assim:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Usar BETWEEN torna a consulta mais concisa e fácil de ler. Isso é especialmente útil ao lidar com múltiplas condições de intervalo.

4. Filtragem de Intervalo de Data
Usando BETWEEN com Datas
O operador BETWEEN também pode ser aplicado a intervalos de datas. Por exemplo, para recuperar pedidos feitos entre 1º de janeiro de 2024 e 31 de dezembro de 2024, você pode escrever:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Dados de Exemplo:
order_id | id_cliente | order_date |
|---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
3 | 103 | 2025-03-01 |
Resultado:
order_id | customer_id | order_date |
|---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
Como mostrado acima, o operador BETWEEN extrai dados dentro do intervalo de datas especificado.
Manipulação de Dados de Hora
Se a coluna de data incluir valores de hora, você precisa ter cuidado. Por exemplo, se a coluna order_date for do tipo DATETIME, usar BETWEEN incluirá valores da meia‑noite (00:00:00) da data de início até a meia‑noite do dia seguinte após a data final. Para garantir que você capture o dia inteiro, especifique o componente de hora explicitamente:
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Filtragem de Intervalo de String
Usando BETWEEN com Strings
O operador BETWEEN também pode ser aplicado a dados de string. Por exemplo, se você quiser pesquisar produtos cujos nomes estejam alfabeticamente entre ‘A’ e ‘M’, a consulta ficaria assim:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
Dados de Exemplo:
product_id | product_name |
|---|---|
1 | Apple |
2 | Banana |
3 | Mango |
4 | Orange |
Resultado:
product_id | nome do produto |
|---|---|
1 | Apple |
2 | Banana |
3 | Mango |
Considerações sobre Ordem Alfabética
Ao filtrar strings com BETWEEN, lembre‑se de que a avaliação é baseada na ordem alfabética. Além disso, dependendo das configurações de collation do banco de dados, a sensibilidade a maiúsculas e minúsculas pode se aplicar. Por exemplo, 'a' e 'A' podem ser tratados como valores diferentes. Sempre confirme as configurações de collation ao trabalhar com intervalos de strings.
6. Notas Importantes sobre o Operador BETWEEN
Ordem dos Valores de Intervalo
Tenha cuidado com a ordem dos valores de intervalo. Se o valor inicial for maior que o valor final, a consulta pode retornar resultados não intencionais:
SELECT *
FROM table_name
WHERE column_name BETWEEN 100 AND 50; -- Unintended result
Além disso, lembre‑se de que BETWEEN é inclusivo em ambas as extremidades do intervalo, portanto escolha seus valores com cuidado.
Índices e Desempenho de Consultas
O operador BETWEEN geralmente tem o mesmo desempenho que os operadores de comparação. Contudo, para otimizar o desempenho, a indexação adequada é essencial. Por exemplo, se você aplicar um índice a uma coluna de data, as consultas que utilizam BETWEEN nessa coluna serão executadas de forma mais eficiente.
7. Consultas Práticas e Casos de Uso
Usando BETWEEN em Múltiplas Colunas
Você também pode combinar condições BETWEEN em várias colunas. Por exemplo, se quiser filtrar produtos com base tanto no intervalo de preço quanto no de estoque, pode escrever:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Esta consulta recupera produtos com preço entre 1000 e 5000, com níveis de estoque entre 50 e 200.
Uso Prático de NOT BETWEEN
Ao usar a forma negativa NOT BETWEEN, você pode extrair facilmente dados fora de um intervalo específico. Por exemplo, para encontrar funcionários cujos salários são menores que 50.000 ou maiores que 100.000, pode escrever:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Resultado:
employee_id | name | salário |
|---|---|---|
1 | Sato | 45000 |
4 | Tanaka | 120000 |
Esta consulta recupera funcionários cujos salários não estão entre 50.000 e 100.000. Usar NOT BETWEEN torna simples aplicar a condição oposta.
8. Exemplos Visuais de Consultas
Para tornar os resultados das consultas mais intuitivos, diagramas visuais podem ser úteis. Por exemplo, você pode ilustrar o efeito de BETWEEN da seguinte forma:
Price Range: [----- 1000 ---- 5000 -----]
Product A Price: 3000 (Inside Range)
Product B Price: 6000 (Outside Range)
Essas ilustrações facilitam a compreensão de se um valor está dentro do intervalo especificado na consulta.
9. Resumo
O operador BETWEEN é uma ferramenta poderosa no MySQL para buscas baseadas em intervalos. Ele pode ser aplicado a dados numéricos, de data e de texto, permitindo escrever consultas que são ao mesmo tempo concisas e eficientes. No entanto, é importante entender suas características — como a inclusividade dos valores de fronteira e a importância de uma indexação correta — para evitar resultados inesperados. Aplicando esse conhecimento, você pode otimizar o desempenho das consultas e extrair apenas os dados necessários de forma mais eficaz.
10. Referências
Para mais detalhes e casos de uso avançados, você pode consultar a documentação oficial do MySQL ou livros especializados em bancos de dados. Além disso, experimentar as consultas por conta própria é uma das melhores maneiras de aprofundar sua compreensão de como o operador BETWEEN funciona.


