O comando SQL BETWEEN é importante para realizar a seleção de ranges de registros em uma tabela, ou seja, se quisermos selecionar as pessoas com idade entre 20 e 30 anos, por exemplo, esse é um dos recursos disponíveis na linguagem SQL para realizarmos essa tarefa. Show
Porém, é preciso atenção ao utilizar esse recurso, pois ele tem algumas características que, se não forem bem observadas, podem fazer com que o resultado da seleção não corresponda ao esperado. Apesar disso, esse comando é um poderoso recurso para as pessoas desenvolvedoras utilizarem em suas aplicações para fazer a seleção de ranges de registros. Para demonstrar como ele funciona, preparamos este post com os seguintes tópicos: Boa leitura! O que é o comando SQL BETWEEN?O comando SQL BETWEEN é utilizado para selecionarmos um determinado range de registros em uma tabela, ou seja, definimos um ponto inicial e final para que o SQL recupere todos os dados pertencentes a ele. Imagine que temos um cadastro de alunos e queremos selecionar aqueles que pertençam a uma determinada faixa de idade. Com esse comando, podemos realizar essa seleção de forma simples e rápida. Qual a sintaxe do comando SQL BETWEEN?A sintaxe do comando SQL BETWEEN é: SELECT coluna1, coluna2,... colunaN FROM nome_tabela WHERE nome_coluna BETWEEN valor_inicial AND valor_final;Em que:
É importante dizer que o comando BETWEEN pode ser usado em dados do tipo numérico, textos ou datas. Ele deve ser utilizado em conjunto com a cláusula WHERE. Além disso, os valores iniciais e finais são obrigatórios e devem ser separados pelo operador AND, necessário para indicar a relação entre os valores. Se esses cuidados não forem tomados, o SQL retorna um erro de sintaxe. 5 exemplos de uso do comando SQL BETWEENExistem diferentes formas de utilizar o comando SQL BETWEEN e a melhor forma de visualizar isso é por meio de exemplos práticos. Para isso, vamos criar uma pequena base de dados chamada “curso”, que contém uma tabela de “alunos” com os campos:
Esses dados servirão de apoio para demonstrarmos como utilizar o comando SQL BETWEEN. Veja o script para a criação da nossa base: 1. Usando SQL NOT BETWEENO objetivo do comando BETWEEN é selecionar os dados que fazem parte de um intervalo. Entretanto, é possível fazer a seleção dos registros que estão fora desse intervalo. Para isso, utilizamos o operador NOT em conjunto com a instrução BETWEEN. No código a seguir, selecionamos todas as pessoas que tenham idade fora do intervalo entre 20 a 30 anos. Veja como fica a instrução SQL: SELECT nome_aluno, idade FROM alunos WHERE idade NOT BETWEEN 20 AND 30 Resultado: Paulo Silva / 18 José Paulo / 35 João Pedro / 40 Valéria Souza / 19É importante observar que, ao utilizarmos o NOT BETWEEN, os valores inicial e final utilizados para compor a expressão de seleção não fazem parte do resultado. Por isso, apesar de termos uma pessoa na tabela com idade igual a 20 anos, ela não é exibida entre os registros selecionados. 2. Usando SQL BETWEEN com datasA cláusula BETWEEN também pode ser utilizada em campos que armazenam valores do tipo data e hora. Isso permite, por exemplo, recuperar os registros em uma tabela referentes a um determinado período — inclusive, é possível fazer a seleção apenas por parte da data, como apensas pelo mês ou ano. No exemplo a seguir, vamos selecionar os alunos de nossa tabela que tenham concluído o curso no ano de 2020. Confira a instrução SQL abaixo: SELECT nome_aluno, data_conclusao FROM alunos WHERE data_conclusao BETWEEN '2020-01-01' AND '2020-12-31' Resultado: Maria Paula / 2020-11-30 Sandra Soares / 2020-01-20 José Paulo / 2020-03-30 Solange Almeida / 2020-01-01Perceba que definimos o range de seleção com a data inicial igual a ‘2020-01-01’ e a final igual a ‘2020-12-31’, ou seja, utilizamos a formatação YYYY-MM-DD. Isso porque estamos utilizando o banco de dados MySQL e esse é o padrão de formatação de data utilizado por ele. É importante dizer que os comandos SQL fazem parte da linguagem SQL e é utilizado em todos os bancos de dados relacional. Entretanto, existem diferenças em relação aos tipos de dados trabalhados em cada banco. A forma de trabalhar com datas, por exemplo, é uma das variações existentes entre os vários bancos disponíveis. Portanto, dependendo do banco utilizado, a instrução acima pode não funcionar corretamente, pois a formatação de data usada por ele pode ser outra. Por isso, ao trabalhar com datas, é importante consultar a documentação do banco de dados escolhido para entender quais os formatos disponíveis e, assim, garantir a manipulação desse conteúdo da forma correta. 3. Usando SQL BETWEEN com valores numéricosO comando BETWEEN também pode ser utilizado com valores numéricos, sejam eles do tipo inteiro, como no primeiro exemplo que demonstramos, quanto com os números decimais. No código a seguir, selecionamos todos as pessoas da tabela alunos que tenham o valor da média de aprovação entre 80.0 e 90.5. Confira a instrução abaixo: SELECT nome_aluno, nota_aprovacao FROM alunos WHERE nota_aprovacao BETWEEN 80.0 AND 90.50 Resultado: Maria Paula / 90.50 Cláudia Barbosa / 80.50 José Paulo / 85.70 João Pedro / 90.00Perceba que no critério de seleção do comando, indicamos o valor máximo como 90.5 e houve um registro retornado com essa nota correspondente. Isso significa que os valores definidos como valor inicial e valor final também fazem parte do range retornados pelo comando BETWEEN. 4. Usando SQL BETWEEN com valores de textoOutra forma de utilizar o comando BETWEEN é para selecionar ranges de textos. É importante entender como esse recurso trabalha com a comparação de textos, pois o resultado pode não corresponder ao esperado. A melhor forma de explicar é com um exemplo prático. Portanto, vamos selecionar na nossa tabela os registros dos alunos que estejam entre as letras “M” e “P”. O comando SQL para essa consulta é: SELECT nome_aluno FROM alunos WHERE nome_aluno between 'M' and 'P' Resultado: Maria Paula Mariana SantosPerceba que o resultado da nossa consulta na tabela alunos retornou apenas dois nomes. Se olharmos na tabela, veremos que existe um aluno (Paulo Silva) que começa com a letra “P”. Entretanto, ele não está listado no resultado da busca. Isso acontece porque é como se disséssemos ao SQL: traga todo mundo que é maior ou igual a M e menor ou igual a P. Portanto, o nome Paulo é maior que somente a letra P. Por isso, ele não retorna esse registro. 5. Usando SQL BETWEEN INO BETWEEN também pode ser utilizado com outros operadores, como o IN, que permite comparar outro campo no critério de seleção após a separação do range, o que torna a busca mais refinada. Veja um código de exemplo: No código acima, selecionamos todos os alunos com nota de aprovação entre 70.0 a 100.0 e, também, com a idade de 25, 30 e 40 anos. Boas práticas ao usar o comando SQL BETWEENAo utilizar o comando SQL BETWEEN é importante observar o tipo de dados que farão parte do critério de seleção, pois, como demonstramos nos exemplos, existem particularidades para cada um deles. O ideal é sempre realizar testes para garantir que o resultado atende à necessidade da aplicação. No banco de dados MySQL, por exemplo, há a recomendação para sempre que o comando BETWEEN for utilizado com os tipos de dados Date, Time e Datetime, utilizar a função para converter a string para o tipo de dado usado. O objetivo é garantir que a comparação será feita com valores do mesmo tipo. Veja como fica a instrução do nosso exemplo número dois com essa recomendação: O comando SQL BETWEEN é um dos recursos disponíveis na linguagem SQL que ajuda a realizar a seleção de um range de dados de uma forma mais refinada. Ele pode ser utilizado com diferentes tipos de dados, como textos, números e datas. Portanto, tenha atenção às recomendações de boas práticas e aproveite ao máximo o que esse comando oferece. Gostou do nosso conteúdo sobre como utilizar o comando SQL BETWEEN? Então, confira nosso post sobre o que é trigger, para que serve e como usar em SQL! |