# SQL BETWEEN: Ler valores em um espectro definido

SQL BETWEEN é usado para definir um intervalo de valores a ser considerado em uma consulta. O operador funciona com números, datas e textos (strings).

## O que é SQL BETWEEN?

Se você deseja exibir entradas, em um banco de dados, que estejam **dentro de um intervalo de valores definido** usando a [Linguagem de Consulta Estruturada (SQL)](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/), o operador SQL BETWEEN é a melhor escolha. Ele pode ser aplicado não apenas a valores numéricos, mas também a datas e até mesmo a entradas de texto (strings). Esse operador é inclusivo, o que significa que o primeiro e o último valor que delimitam o intervalo são incluídos na contagem. O SQL BETWEEN deve ser utilizado com uma cláusula WHERE e executado com os comandos SQL [DELETE](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-backup-database/), INSERT, SELECT e UPDATE.

## Sintaxe e funcionalidade

Vamos examinar mais de perto a interação do operador SQL BETWEEN com o comando SELECT e a cláusula WHERE. A sintaxe correspondente é a seguinte:

```sql
SELECT coluna1, coluna2, …
FROM nome_da_tabela
WHERE nome_da_coluna BETWEEN valor_inicial AND valor_final;
```

Com `coluna1`, `coluna2` etc., você especifica quais colunas devem ser exibidas. Em seguida, você indica o nome da tabela onde essas colunas estão localizadas. Em `nome_da_coluna`, você define quais valores exatamente devem ser considerados e, em seguida, usa `BETWEEN valor_inicial AND valor_final` para especificar o intervalo em que os valores devem estar.

## Exemplo de uso do operador

Para ilustrar melhor o funcionamento do operador SQL BETWEEN, criamos uma tabela de exemplo chamada “Lista de clientes”. Nela, listamos o número de cada cliente, o nome, a localização, a data do pedido, a quantidade de itens encomendados e o valor total em reais que esses clientes pagaram.

<table>
  <thead>
    <tr>
      <th><strong>Número do Cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Localização</strong></th>
      <th><strong>Data</strong></th>
      <th><strong>Itens</strong></th>
      <th><strong>Valor Total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Santos</td>
      <td>Fortaleza</td>
      <td>13/01/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Fonseca</td>
      <td>Piracicaba</td>
      <td>19/01/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Hernandez</td>
      <td>Piracicaba</td>
      <td>03/01/2024</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Faria</td>
      <td>Patos de Minas</td>
      <td>19/01/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Becker</td>
      <td>Goiânia</td>
      <td>01/02/2024</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Se quisermos filtrar essa lista, podemos usar o SQL BETWEEN para isso. Por exemplo, é possível exibir apenas os clientes que investiram entre 300 e 700 reais no período especificado. Observe:

```sql
SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Valor Total BETWEEN 300 AND 700;
```

A saída correspondente seria a seguinte:

<table>
  <thead>
    <tr>
      <th><strong>Número do Cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Localização</strong></th>
      <th><strong>Data</strong></th>
      <th><strong>Itens</strong></th>
      <th><strong>Valor Total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Santos</td>
      <td>Fortaleza</td>
      <td>13/01/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Hernandez</td>
      <td>Piracicaba</td>
      <td>03/01/2024</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Becker</td>
      <td>Goiânia</td>
      <td>01/02/2024</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

## Palavras como espectro de valores

O operador SQL BETWEEN também funciona com palavras — o critério é baseado nas letras iniciais dos valores textuais armazenados. No exemplo a seguir, queremos considerar apenas as entradas que estão alfabeticamente entre “Faria“ e “Santos”.

```sql
SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Nome BETWEEN 'Faria' AND 'Santos'
ORDER BY Nome;
```

A saída será a seguinte tabela:

<table>
  <thead>
    <tr>
      <th><strong>Número do Cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Localização</strong></th>
      <th><strong>Data</strong></th>
      <th><strong>Itens</strong></th>
      <th><strong>Valor Total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1431</td>
      <td>Faria</td>
      <td>Patos de Minas</td>
      <td>19/01/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Fonseca</td>
      <td>Piracicaba</td>
      <td>19/01/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Hernandez</td>
      <td>Piracicaba</td>
      <td>03/01/2024</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1427</td>
      <td>Santos</td>
      <td>Fortaleza</td>
      <td>13/01/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
  </tbody>
</table>

Os registros “Faria” e “Santos” são incluídos, pois o operador é inclusivo. Usando o comando **ORDER BY Nome**, podemos ordenar a saída em ordem alfabética.

## Selecionar por data

Se você deseja visualizar apenas as transações de pedidos que foram processadas dentro de um intervalo específico, também é possível usar o SQL BETWEEN para isso. No exemplo a seguir, filtramos nossa lista de clientes para mostrar pedidos feitos entre 10 e 31 de janeiro de 2024. O resultado seria:

```sql
SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Data BETWEEN '1/10/2024' AND '1/31/2024';
```

Como resultado obtemos esta tabela:

<table>
  <thead>
    <tr>
      <th><strong>Número do Cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Localização</strong></th>
      <th><strong>Data</strong></th>
      <th><strong>Itens</strong></th>
      <th><strong>Valor Total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Santos</td>
      <td>Fortaleza</td>
      <td>13/01/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Fonseca</td>
      <td>Piracicaba</td>
      <td>19/01/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Faria</td>
      <td>Patos de Minas</td>
      <td>19/01/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

## Operadores semelhantes ao SQL BETWEEN

Você também pode exibir apenas os resultados que estão **fora do intervalo definido**. Para isso, use **NOT BETWEEN**. A abordagem é muito semelhante. Se quisermos, no nosso exemplo, mostrar apenas os clientes que gastaram menos de 300 ou mais de 700 reais, o processo seria o seguinte:

```sql
SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Valor Total NOT BETWEEN 300 AND 700;
```

A saída incluiria apenas dois registros:

<table>
  <thead>
    <tr>
      <th><strong>Número do Cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Localização</strong></th>
      <th><strong>Data</strong></th>
      <th><strong>Itens</strong></th>
      <th><strong>Valor Total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1377</td>
      <td>Fonseca</td>
      <td>Piracicaba</td>
      <td>19/01/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Faria</td>
      <td>Patos de Minas</td>
      <td>19/01/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

Dica Hospede o seu servidor de acordo com as suas necessidades: Com o [SQL Server Hosting](https://www.ionos.com/cloud/sql-server-hosting "SQL Server Hosting — IONOS") da IONOS, você não apenas escolhe entre o MSSQL, o MySQL e o MariaDB, como também se beneficia de consultorias personalizadas e do melhor desempenho do mercado.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-between/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-between/) for AI/LLM consumption.