Filtrar dados: between, like e IN em sql server, access e mysql

Conheça as condições Between, In, Not In, like e not like, usadas para criar filtros em consultas com a linguagem SQL e aplicável a diversos bancos de dados

Home Tecnologia

Filtrar dados com between, like e IN em consultas a banco de dados é uma prática comum e suportada pelos principais bancos de dados, como o SQL Server, Access, Mysql, Oracle e outros. Filtros são extramente úteis para dar performance às consultas, aliviando possíveis sobrecargas no banco de dados.

A condição Between

Use a condição Between para retornar linhas baseadas em uma faixa de valores. Muito proprício para campos do tipo numérico ou data.

Como exemplo poderemos efetuar uma consulta para retornar o salário dos empregados que ganham entre 1000 e 5000 ou uma consulta por todos os prédios tombados entre o ano 2000 e 2005.

Veja um exemplo abaixo:

SELECT nome, data_nascimento, cidade, estado
FROM empregados
WHERE data_nascimento between '01/01/1975' and '12/13/1985'

No exemplo as linhas retornadas tem a data de nascimento do empregado entre 01 de janeiro de 1975 e 13 de dezembro de 1985. (observe que a comparação de data deve ser feita no formato americano).

Outro exemplo pode ser feito com valores numéricos e aplicado a um campo do tipo int, decimal ou outro numérico.

SELECT nome, data_nascimento, cidade, estado
FROM empregados
WHERE salario between 1500 and 2000

No exemplo acima será mostrado os registros cujos salários estiverem entre 1500 e 2000, inclusive.

Alem da coluna do tipo data é possível também usar o between em uma coluna numérica.

A condição IN e Not IN

Use a condição IN para retornar linhas cujos valores atendem a uma determinada lista ou a NOT IN para os valores que não atendem a lista.

Entenda por lista valores separados por vírgulas, exemplo: 1,2,3,4 ou 'um','dois','tres'.

Esta condição poderia efetuar uma imobiliária encontrar por exemplo, todos os imóveis alugados nas cidades de São Paulo, Rio de Janeiro e Belo Horizonte ou todos os prédios comerciais de luxo disponíveis nos bairros do Broklin, Morumbi e Vila Olimpia.

Veja um exemplo abaixo:

SELECT código_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE codigo_empregado in(3,7,9,11,14);

Neste exemplo as linhas retornadas tem o valor da coluna código_empregado igual a 3,7,9,11 e 14.

Outra possibilidade é usar valores do tipo String ca cadeia do IN, veja um exemplo abaixo:

SELECT código_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE estado in('SP','MG','RJ','ES');

Se trocarmos a condição IN por NOT IN, teremos o resultado inverso.

SELECT código_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE codigo_empregado not in(3,7,9,11,14)

 

A condição Like e Not Like

Use a condição LIKE para executar pesquisas curingas.

O caracter curinga %(porcentagem) deve ser usado para substituir um caracter ou grupo de caracteres, não importando a sua natureza.

Esta condição é muito usada na internet para fazer as buscas tradicionais, como no caso dos sites de busca (google, yahoo, MSN, etc).

SELECT codigo_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE nome Like '%Maria%'

Neste exemplo foi mostrado as linhas cujo nome tinha a sequencia de caracteres Maria.

Há duas outras possibilidades com este mesmo exemplo. Veja:

SELECT codigo_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE nome Like 'Maria%'

No exemplo acima ele mostraria os registros cujos nomes iniciam por Maria.

SELECT codigo_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE nome Like '%Maria'

No exemplo acima é o inverso, ou seja, ele mostraria os registros cujos nomes terminam por Maria.

Agora veja o mesmo exemplo com o not like.

SELECT codigo_empregado, nome, data_nascimento, cidade
FROM empregados
WHERE nome Not Like '%MA%'

Neste caso será mostrado todas as linhas, exceto as que tiverem MA no nome.

OBS: O Access as vezes trata de forma diferentes os caracteres curingas nestas consultas, mas funciona normalmente em Sql Server e MySQL.

Gostou? Compartilhe



 

Leia também:



© 2008-2019 | Professor Digital | Política de Privacidade | Em Jesus Cristo eu confio