SQL — Comando WHERE
Quando queremos utilizar um filtro em uma consulta, utilizamos o comando WHERE.
Por exemplo:
SELECT *
FROM clientes
WHERE cidade = 'SP';
Nesse caso, estamos dizendo:
"Selecione todas as colunas da tabela
clientesonde a colunacidadeseja igual aSP."
O resultado será somente os registros dos clientes cuja cidade possui o valor SP.
Textos e números
Uma coisa importante é observar o tipo de dado que estamos utilizando no filtro.
Quando estamos filtrando textos, normalmente colocamos o valor entre aspas simples:
WHERE cidade = 'SP'
Já quando estamos trabalhando com números, não precisamos utilizar aspas:
WHERE idade = 30
Isso acontece porque SP é um texto, enquanto 30 é um número.
Filtrando vários valores com IN
E se eu quiser buscar vários valores diferentes na mesma coluna? Podemos utilizar o comando IN.
Por exemplo:
SELECT *
FROM clientes
WHERE idade IN (3, 6, 9);
Nesse caso, estou buscando os registros em que a idade seja 3, 6 ou 9.
O IN funciona como uma forma mais prática de escrever várias condições de igualdade. Em vez de:
WHERE idade = 3
OR idade = 6
OR idade = 9
podemos escrever:
WHERE idade IN (3, 6, 9);
Utilizando LIKE e os curingas
Outra possibilidade interessante do WHERE é utilizar o LIKE para procurar textos que seguem determinado padrão.
O símbolo % funciona como um coringa, representando qualquer quantidade de caracteres. Por exemplo:
SELECT *
FROM produtos
WHERE descricao LIKE 'Alto%';
Nesse caso, estou procurando descrições que começam com "Alto". Poderíamos encontrar, por exemplo:
- Alto-falante
- Alto rendimento
- Alto padrão
Também podemos colocar o % antes da palavra:
WHERE descricao LIKE '%Alto';
Nesse caso, estamos procurando valores que terminam com "Alto".
E podemos colocar o % dos dois lados:
WHERE descricao LIKE '%Alto%';
Aqui, estamos procurando valores que contenham "Alto" em qualquer parte do texto.
O que estou aprendendo com o WHERE
O WHERE é um comando muito importante porque permite deixar nossas consultas mais específicas. Com ele, podemos começar com uma tabela cheia de informações e fazer perguntas mais direcionadas aos dados.
Por exemplo:
- Quais clientes são de SP?
WHERE cidade = 'SP'
- Quais clientes têm idade 3, 6 ou 9?
WHERE idade IN (3, 6, 9)
- Quais produtos possuem "Alto" em sua descrição?
WHERE descricao LIKE '%Alto%'
Estou percebendo que, conforme avanço nos estudos de SQL, os comandos começam a se combinar e a consulta passa a ficar cada vez mais poderosa.
SELECTmostra o que quero consultar.
WHEREdefine quais registros quero encontrar.
Mapa mental
