.## 1. Introdução
Um dos elementos importantes para executar consultas de forma eficiente em um banco de dados MySQL é o operador BETWEEN. Esse operador é extremamente útil ao verificar se os dados estão dentro de um intervalo específico. Ele é usado para especificar intervalos para números, datas e strings, permitindo a extração eficiente de dados em buscas e filtragens no banco de dados. Neste artigo, explicaremos em detalhes como usar o operador BETWEEN do MySQL, exemplos práticos e considerações importantes.
- 1 2. Sintaxe Básica do Operador BETWEEN
- 2 3. Especificando um Intervalo Numérico
- 3 4. Especificando um Intervalo de Datas
- 4 5. Especificando um Intervalo de Strings
- 5 6. Considerações Importantes ao Usar BETWEEN
- 6 7. Consultas Práticas e Exemplos Avançados
- 7 8. Exemplo Visual de Consulta
- 8 9. Resumo
- 9 10. Referências
2. Sintaxe Básica do Operador BETWEEN
Visão Geral do Operador BETWEEN
O operador BETWEEN é uma condição usada na cláusula WHERE para verificar se o valor de uma coluna específica está dentro de um intervalo definido. A 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 esse operador para extrair os funcionários dentro de um intervalo de idade específico.
Forma Negativa: NOT BETWEEN
Se você quiser buscar valores que não estejam incluídos dentro de um intervalo especificado, use a forma negativa NOT BETWEEN.
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;
3. Especificando um Intervalo Numérico
Usando BETWEEN para Intervalos Numéricos
O operador BETWEEN é muito conveniente para especificar intervalos numéricos. Por exemplo, se você quiser extrair dados onde os salários dos funcionários estejam entre 50.000 e 100.000, escreva a consulta da seguinte forma:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Dados de Exemplo:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
| 4 | Tanaka | 120000 |
Resultado da Execução:
| employee_id | name | salary |
|---|---|---|
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
Na consulta acima, apenas os funcionários cujos salários estejam entre 50.000 e 100.000 são selecionados.
Diferença em relação aos Operadores de Comparação
Se você expressar a mesma condição usando operadores de comparação, ela ficaria assim:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Usar BETWEEN torna a consulta mais concisa e melhora a legibilidade. Especialmente quando há múltiplas condições de intervalo, BETWEEN facilita a compreensão da consulta.

4. Especificando um Intervalo de Datas
Usando BETWEEN com Dados de Data
BETWEEN também pode ser usado para especificar intervalos de datas. Por exemplo, para extrair pedidos da tabela orders entre 1 de janeiro de 2024 e 31 de dezembro de 2024, escreva a consulta da seguinte forma:
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 | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
| 3 | 103 | 2025-03-01 |
Resultado da Execução:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
Conforme mostrado acima, o operador BETWEEN extrai os dados dentro do intervalo de datas especificado.
Tratamento de Dados de Hora
Se os dados de data incluírem hora, é necessário ter atenção especial. Por exemplo, se a coluna order_date for do tipo DATETIME e contiver valores de hora, especificar um intervalo com BETWEEN incluirá registros desde a meia‑noite da data inicial até 23:59:59 da data final.
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Especificando um Intervalo de Strings
Usando BETWEEN com Dados de String
O operador BETWEEN também pode ser aplicado a dados de string. Por exemplo, se você quiser buscar produtos cujos nomes estejam entre ‘A’ e ‘M’, escreva a consulta da seguinte forma:
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 da Execução:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
Considerações sobre Ordem Alfabética
Ao especificar intervalos de strings, assume‑se que as strings são ordenadas alfabeticamente. Como os bancos de dados podem distinguir entre letras maiúsculas e minúsculas dependendo das configurações de collation, é preciso ter cautela. Por exemplo, 'a' e 'A' podem ser tratados como valores diferentes.
6. Considerações Importantes ao Usar BETWEEN
A Ordem do Intervalo Importa
.
Ao usar o operador BETWEEN, tenha cuidado com a ordem dos valores inicial e final. Se o valor inicial for maior que o valor final, a consulta pode retornar resultados indesejados.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- unintended result
Além disso, como o BETWEEN inclui ambos os valores de limite, é importante escolher os valores inicial e final com atenção.
Uso de Índices e Eficiência
O operador BETWEEN geralmente tem desempenho comparável aos operadores de comparação padrão. Contudo, para otimizar o desempenho da consulta, a indexação adequada é essencial. Quando os índices são configurados corretamente, a velocidade de execução da consulta usando o operador BETWEEN melhora. Por exemplo, criar um índice em uma coluna de data permite que consultas de intervalo de datas sejam executadas de forma mais eficiente.
7. Consultas Práticas e Exemplos Avançados
Usando BETWEEN com Múltiplas Colunas
O operador BETWEEN também pode ser usado em combinação em várias colunas. Por exemplo, ao realizar uma busca por intervalo especificando tanto o preço do produto quanto a quantidade em estoque, a consulta a seguir pode ser utilizada:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Essa consulta procura produtos com preços entre 1.000 e 5.000 e quantidades em estoque entre 50 e 200.
Exemplo Avançado de NOT BETWEEN
Usando a forma negativa NOT BETWEEN, você pode extrair dados fora de um intervalo especificado. Por exemplo, para buscar funcionários cujos salários estejam abaixo de 50.000 ou acima de 100.000, escreva a consulta da seguinte forma:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Resultado da Execução:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 4 | Tanaka | 120000 |
Essa consulta recupera funcionários cujos salários não se encontram dentro do intervalo de 50.000 a 100.000. O uso de NOT BETWEEN facilita a extração de dados com base em condições inversas.
8. Exemplo Visual de Consulta
Para demonstrar visualmente os resultados da consulta, usar um diagrama simples pode ser eficaz. Por exemplo, a ilustração a seguir explica como o BETWEEN funciona:
Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (within range)
Product B price: 6000 (outside range)
Utilizar um diagrama como este facilita a compreensão intuitiva de se os dados estão dentro do intervalo de consulta especificado.
9. Resumo
O operador BETWEEN é uma ferramenta extremamente útil no MySQL ao realizar buscas baseadas em intervalos. Ele pode ser aplicado a dados numéricos, de data e de texto, permitindo que consultas sejam escritas de forma concisa e eficiente. No entanto, é importante entender considerações chave, como a inclusão dos valores de limite e o uso adequado de índices. Ao aproveitar esse conhecimento, você pode otimizar o desempenho das consultas ao banco de dados e extrair os dados necessários de maneira eficiente.
10. Referências
Para mais detalhes e exemplos de uso adicionais, consulte a documentação oficial do MySQL e livros especializados em bancos de dados. Praticar consultas por conta própria aprofundará ainda mais sua compreensão do operador BETWEEN.


