Voltar para a lista de artigos Artigos
7 minutos de leitura

O operador SQL BETWEEN

Os operadores de comparação SQL são ferramentas essenciais para filtrar dados em consultas a bancos de dados. Entre esses operadores, o operador BETWEEN destaca-se como uma ferramenta importante para especificar intervalos dentro de conjuntos de dados.

Os operadores de comparação SQL, como BETWEEN, são úteis para filtrar dados em consultas a bancos de dados. O operador BETWEEN permite selecionar linhas dentro de um determinado intervalo, o que o torna ideal para tarefas como segmentar um público por faixas etárias, identificar limites para itens entre determinadas quantidades ou categorizar o desempenho com base em pontuações de exames.

Neste artigo, abordaremos os fundamentos do operador SQL BETWEEN. Vamos nos concentrar em exemplos práticos e conselhos realistas para tirar o máximo proveito dele. Quer você seja um iniciante em SQL ou queira aprimorar suas habilidades, a compreensão do operador SQL BETWEEN melhorará suas consultas SQL.

Se você é iniciante em SQL, por que não dar uma olhada em nosso SQL para Iniciantes curso? Se estiver procurando revisar e consolidar suas habilidades em SQL, nosso Trilha de Práticas em SQL o levará mais longe em sua jornada de aprendizado.

Dito isso, vamos começar a descobrir o poder do SQL BETWEEN!

Entendendo o operador BETWEEN do SQL

Sintaxe básica do BETWEEN

O operador SQL BETWEEN segue uma sintaxe simples. Está achando difícil lembrar a sintaxe SQL e os nomes dos operadores? Não se preocupe; nós o ajudamos com a nossa Folha de dicas de SQL!

A estrutura típica do BETWEEN é a seguinte:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Vamos detalhar a sintaxe:

  • SELECT: Especifica de quais colunas serão recuperados os dados.
  • FROM: A tabela que armazena os dados.
  • WHERE: Filtra as linhas com base em critérios específicos.
  • BETWEEN: O próprio operador BETWEEN.
  • value1: O limite inferior do intervalo.
  • value2: O limite superior do intervalo.

Um exemplo prático de BETWEEN

É importante estar ciente de que o operador BETWEEN inclui os limites inferior e superior. Em outras palavras, ele inclui valores iguais a value1, value2 e qualquer valor que esteja entre eles no conjunto de resultados. Vamos ilustrar com um exemplo.

Imagine que estamos trabalhando em uma loja de departamentos e queremos recuperar todas as informações sobre nossos produtos cujo preço esteja entre US$ 12,99 e US$ 19,99, inclusive:

SELECT *
FROM products
WHERE price BETWEEN 12.99 AND 19.99;

Essa consulta retornará todas as linhas da tabela products cujo preço seja igual a 12,99, 19,99 ou igual a qualquer preço entre 12,99 e 19,99. Como visto aqui, o uso do operador BETWEEN aqui simplifica e esclarece o código, facilitando a leitura e a manutenção. Para obter mais exemplos práticos para iniciantes, confira nossos 10 exercícios para iniciantes em Trilha de Práticas em SQL com soluções.

Simplificação de consultas com BETWEEN

Você já deve ter notado que o operador BETWEEN é essencialmente um atalho para combinar os operadores >= e <=. Usar a sintaxe column_name BETWEEN value1 AND value2 é equivalente a declarar column_name >= value1 AND column_name <= value2. Aplicando essa sintaxe à nossa consulta anterior, os resultados finais serão os mesmos:

SELECT *
FROM products
WHERE price >= 50 AND price <= 100;

Entretanto, o operador BETWEEN oferece uma sintaxe mais compacta e óbvia do que o uso dos operadores >= e <=. Ele simplifica a criação de consultas, reduz erros e melhora a legibilidade, tornando-o o método recomendado para especificar condições de intervalo em consultas SQL.

O operador NOT BETWEEN

Em SQL, geralmente usamos o operador lógico NOT para remover linhas de nossos dados que não atendem a uma determinada condição. Da mesma forma, podemos usar NOT BETWEEN para obter os resultados opostos do operador BETWEEN.

Em outras palavras, o uso do operador BETWEEN filtra os resultados dentro do intervalo especificado. O uso do operador NOT BETWEEN filtra os resultados fora do intervalo.

Considere um cenário em que desejamos extrair todos os dados da tabela customers em que as idades dos clientes não estejam entre 25 e 30 anos. Podemos fazer isso com o operador NOT BETWEEN:

SELECT *
FROM customers
WHERE age NOT BETWEEN 25 AND 30;

Nessa consulta:

  • SELECT *: Especifica que desejamos recuperar todas as colunas.
  • FROM clientes: A tabela da qual recuperaremos os dados.
  • WHERE AGE IS NOT BETWEEN 25 AND 30: Seleciona as linhas em que o valor da coluna idade é menor que 25 e maior que 30.

Outros exemplos desse método poderiam ser a localização de produtos com quantidades fora de um intervalo especificado, a localização de funcionários empregados fora de um determinado período de tempo ou a identificação de consumidores com compras totais abaixo ou acima de um determinado valor.

Uso do operador BETWEEN com valores de texto

Embora frequentemente associado a intervalos numéricos, o operador SQL BETWEEN também pode ser aplicado a valores de texto.

Imagine que estamos de volta ao cenário da loja de departamentos com a tabela products. Usando a coluna category (que contém categorias de produtos como valores de texto), queremos recuperar todas as categorias que estão em ordem alfabética entre categorias específicas.

SELECT *
FROM products
WHERE category BETWEEN 'Electronics' AND 'Toys and Games';

Nessa consulta:

  • SELECT *: Indica que desejamos recuperar todas as colunas.
  • FROM produtos: A tabela da qual os dados serão recuperados.
  • WHERE category IS BETWEEN 'Electronics' AND 'Toys and Games': Filtra as linhas para incluir somente aquelas cujo valor da coluna de categoria está entre 'Electronics' e 'Toys and Games' em ordem alfabética , inclusive.

Como você pode ver, o uso do operador SQL BETWEEN com valores de texto permite que você filtre facilmente os dados com base na ordem alfabética. Outro exemplo poderia incluir a recuperação de informações sobre clientes cujos sobrenomes estejam dentro de um intervalo alfabético específico:

SELECT *
FROM customers
WHERE last_name BETWEEN 'B' AND 'G';

Da mesma forma, no cenário da loja de departamentos, você poderia filtrar colunas que seguem uma sequência (por exemplo, códigos de produtos):

SELECT *
FROM products
WHERE product_code BETWEEN 'C100' AND 'C150';

Esses exemplos não apenas demonstram a praticidade do operador BETWEEN, mas também sua versatilidade em filtrar mais do que apenas dados numéricos.

Uso do operador BETWEEN do SQL com datas

O operador BETWEEN no SQL também pode ser útil para selecionar dados dentro de períodos de datas específicos.

Vamos voltar ao cenário da nossa loja de departamentos e imaginar que temos uma tabela chamada orders com uma coluna chamada order_date que contém as datas em que os pedidos foram feitos. Vamos examinar como podemos usar essa maneira para recuperar todos os pedidos feitos entre a primeira semana de abril de 2024:

SELECT * FROM sales
WHERE sale_date BETWEEN '2024-04-01' AND '2024-04-07';

Nessa consulta:

  • SELECT *: Indica que queremos recuperar todas as colunas.
  • FROM sales: Fornece a tabela da qual os dados serão recuperados.
  • WHERE sales_date BETWEEN '2024-04-01' AND '2024-04-07': Filtra as linhas para aquelas cujo order_date está entre 1º de abril de 2024 e 7 de abril de 2024, inclusive.

Importante: ao usar o operador BETWEEN com dados de data ou registro de data e hora, ele inclui as datas de início e término, mas exclui o componente de tempo. Escrever '2024-04-07' é o equivalente a '2024-04-07 00:00:00'. Os resultados dessa consulta incluirão linhas de '2024-04-01 00:00:00' (ou seja, 12 AM de 1º de abril) a '2024-04-07 00:00:00', o que significa que as vendas após a meia-noite do dia 7 serão excluídas. Para superar essa limitação, você poderia estender a consulta da seguinte forma:

SELECT * FROM sales 
WHERE sale_date >= '2024-04-01' AND sale_date <= '2024-04-07';

Para evitar erros, é melhor usar os operadores <= (menor ou igual a) e >= (maior ou igual a), especialmente se você não tiver certeza sobre o tipo de dados. Ao usar esse método, você estará incluindo o intervalo de datas completo, inclusive quaisquer registros de data e hora dentro das datas especificadas.

Hora de praticar o SQL BETWEEN

Para concluir, o operador SQL BETWEEN é uma ferramenta indispensável em seu kit de ferramentas SQL. Ele pode ser usado em uma variedade de tipos de dados, incluindo números, texto e datas. Sua sintaxe simples e sua natureza inclusiva o tornam a escolha ideal para filtrar linhas com base em critérios especificados.

Entretanto, é importante estar ciente do comportamento do BETWEEN, especialmente ao lidar com valores de data e carimbo de data/hora, para garantir a confiabilidade dos resultados. Embora o operador BETWEEN expresse as condições de intervalo de forma concisa, é melhor usar a sintaxe <= AND >= para incluir um intervalo de datas completo.

Ao compreender a sintaxe, os usos e os comportamentos do SQL BETWEEN, você pode melhorar o desempenho da consulta e a precisão da recuperação de dados. O operador BETWEEN é uma ferramenta imprescindível para os especialistas em SQL, permitindo a otimização dos processos do banco de dados e a extração eficiente de dados. Pronto para se aprofundar? Experimente nosso Trilha de Práticas em SQL e comece a criar suas próprias consultas BETWEEN!