Os seguintes operadores podem ser usados com o comando WHERE:
= Igual
> Maior que
< Menor que
>= Maior ou igual
<= Menor ou igual
<> ou != Diferente de
IN Incluindo (múltiplos valores)
NOT IN Excluindo (múltiplos valores)
BETWEEN Entre dois valores
LIKE Busca um padrão parecido
IS NULL Traz todos os valores nulos
IS NOT NULL Traz todos os valores que não são nulos
Para filtrar valores iguais ou diferentes
SELECT nome, sexo
FROM pessoas
WHERE sexo = 'Feminino'
Observação: Em campos de texto (char ou varchar) é necessário que os valores buscados estejam entre aspas simples.
SELECT nome, sexo
FROM pessoas
WHERE sexo <> 'Feminino'
Para filtrar valores maiores ou menores
SELECT nome, idade
FROM pessoas
WHERE idade > 50
Incluindo ou excluindo múltiplos valores
Para filtrar múltiplos valores, deve-se usar os operadores IN (incluindo) e NOT IN (excluindo), seguidos dos valores entre parênteses e separados por vírgulas.
SELECT id, nome
FROM pessoas
WHERE nome IN ('Ana', 'Joao', 'Maria', 'Rafael')
No código acima estamos filtrando somente as pessoas cujo nome sejam Ana, Joao, Maria e Rafael
SELECT id, nome
FROM pessoas
WHERE nome NOT IN ('Ana', 'Joao', 'Maria', 'Rafael')
No código acima estamos filtrando somente as pessoas cujo nome não sejam Ana, Joao, Maria e Rafael.
Filtrando um intervalo de valores
SELECT nome, idade
FROM pessoas
WHERE idade BETWEEN 20 AND 25
Na query acima estamos buscando todas as pessoas cujo valor da coluna “idade” esteja entre 20 e 25
Ao trocar a expressão “BETWEEN” por “NOT BETWEEN” é possível excluir do resultado todas as pessoas cuja idade estejam entre o intervalo mencionado.
Filtrando valores parecidos
Ao usar o operador “LIKE” é possível filtrar valores parecidos ou que tenham o mesmo padrão da condição estipulada.
SELECT nome
FROM pessoas
WHERE nome LIKE '%A%'
No código acima estamos buscando todas as pessoas cujo nome contenha a letra “A”. O “%” no início e no fim da expressão indica que a letra “A” pode estar posicionada em qualquer lugar do campo:
SELECT nome
FROM pessoas
WHERE nome LIKE 'A%'
Já no caso acima, ao tirar o “%” do início da expressão estamos indicando que desejamos filtrar apenas os valores que comecem com a letra “A”:
SELECT nome
FROM pessoas
WHERE nome LIKE '%A'
E no caso acima filtramos todos os nomes que terminem com a letra “A”
Ao substituir a cláusula LIKE por NOT LIKE é possível filtrar todos os valores que não apresentem o determinado padrão.
Valores Nulos
Para filtrar valores nulos (inexistentes) o correto é usar as expressões IS NULL (é nulo) ou IS NOT NULL (não é nulo), usando a sintaxe abaixo:
SELECT nome
FROM pessoas
WHERE nome IS NOT NULL
Neste caso estamos filtrando todas as pessoas cujo campo “nome” tenha algum valor associado. Ao trocar a expressão IS NOT NULL por IS NULL iremos filtrar todas as pessoas cujo campo nome não tenha informação.
Usando mais de uma condição
É possível combinar mais condições na mesma query usando AND (e) e OR (ou), como no exemplo abaixo:
SELECT nome, idade, uf
FROM pessoas
WHERE idade > 20
AND uf = 'SP'
No exemplo acima estamos indicando que sejam mostrados apenas os registros cujo campo idade seja maior que 20 e o campo uf seja igual a “SP”.
SELECT nome, idade, uf
FROM pessoas
WHERE idade > 20
AND (uf = 'SP' OR uf = 'RJ')
Já no exemplo acima buscamos todas as pessoas cuja idade seja maior que 20 e que residam no estado de SP ou RJ. Você pode escrever quantas condições precisar.
---------------------------------------------------------------------------------------------------------------------------
Alguns Exemplos: