SQL: Introdução ao Where

A cláusula WHERE é utilizada para extrair resultados que cumpram determinadas condições, ou seja, funciona como um filtro para que seja retornado apenas resultados específicos em uma consulta.

A cláusula WHERE é utilizada para extrair resultados que cumpram determinadas condições, ou seja, funciona como um filtro para que seja retornado apenas resultados específicos em uma consulta.


Guia do artigo:

Visão geral

É dentro desta cláusula que é feito a maioria dos filtros que irão trazer o resultado esperado pelo SELECT. Nela pode ser utilizado desde comparação de valores com operadores de comparação, até filtros com base em subqueries utilizando cláusulas como IN, NOT IN e EXISTS.

Para este exemplo, considere o seguinte cenário:

uma empresa do ramo de vendas possui uma tabela no banco de dados chamada cliente (Tabela 1), onde armazena todas as informações referentes a todos os seus clientes.

id nome email cidade data_cadastro
1 Fernando Braga contato@mundial.com.br Belo Horizonte 2017-11-05
2 Luana Soares luanassa@yahoo.com.br São Paulo 2016-05-05
3 Pedro Botelho contato@mundial.com.br São Paulo 2018-04-02
4 Marilia Gabriela mari_21@yahoo.com.br São Paulo 2018-03-01
5 Bruno Henrique brunohrq@gmail.com Rio de Janeiro 2016-05-05
6 Cintia Pereira cintiazinha@ig.com.br Belo Horizonte 2014-11-12
7 Raquel Tavares contato@mundial.com.br Belo Horizonte 2014-11-11
Tabela 1. Estrutura da tabela cliente

Suponhamos que seja necessário lista os dados de um usuário específico, cujo nome é Marilia Gabriela. Para isso podemos utilizar o trecho de código abaixo:

SELECT * FROM Cliente WHERE nome = ‘Marilia Gabriela’

No trecho de código acima, utilizamos na linha 5 a cláusula WHERE para informar que a consulta deve trazer apenas os resultados que atendam aos filtros informados, que no nosso caso é o valor da coluna nome ser igual a Marilia Gabriela (linha 6).

O resultado da query pode ser visto na Tabela 2.


id nome email cidade data_cadastro
4 Marilia Gabriela mari_21@yahoo.com.br São Paulo 2018-03-01
Tabela 2. Resultado da consulta do cliente de nome Marilia Gabriela

Sintaxe

SELECT [ coluna1, coluna2, ... | * ] FROM [ tabela1, tabela2, ... ] WHERE [ condicao ];

Na prática

Exemplo 1

Ainda utilizando a estrutura de tabela cliente, suponha que seja necessário trazer todos os clientes que tenham se cadastrado no ano de 2016. Para isso, podemos utilizar o seguinte trecho de código:

SELECT * FROM Cliente WHERE YEAR(data_cadastro) = 2016

No trecho de código acima, nas linha 5 e 6 definimos o filtro da consulta utilizando WHERE para trazer resultados somente cujo ano da coluna data_cadastro seja igual a 2016.

O resultado da query pode ser visto na Tabela 3.


id nome email cidade data_cadastro
2 Luana Soares luanassa@yahoo.com.br São Paulo 2016-05-05
5 Bruno Henrique brunohrq@gmail.com Rio de Janeiro 2016-05-05
Tabela 3. Lista de todos os clientes cadastrados no ano de 2016

É importante lembrar que o WHERE suporta os operadores de condição igual (=), maior que (>), menor que ( /span>), maior ou igual (>=), menor ou igual ( ) e diferente ( ou != dependendo do SGBD).


Exemplo 2

Suponhamos que agora seja necessário trazer todos os clientes com e-mail do yahoo que morem em São Paulo, ou seja, duas condições de filtro. Para isso, podemos utilizar o seguinte trecho de código:

SELECT * FROM cliente WHERE email like ‘%@yahoo.com.br’ AND cidade = ‘São Paulo’

No trecho de código acima selecionamos todos os dados da tabela cliente, e nas linhas 5 a 7 definimos o filtro da consulta como buscar todos os clientes que possuam email do yahoo, através da cláusula LIKE, e utilizamos o operador lógico AND para informar que além desse filtro, obrigatoriamente a consulta deve respeitar o próximo filtro, que é a cidade do cliente ser igual a São Paulo.

O resultado da consulta pode ser visto na Tabela 4.


id nome email cidade data_cadastro
2 Luana Soares luanassa@yahoo.com.br São Paulo 2016-05-05
4 Marilia Gabriela mari_21@yahoo.com.br São Paulo 2018-03-01
Tabela 4. Lista de todos os clientes que moram em São Paulo e que possuam e-mail do Yahoo

Na Tabela 5 podemos conhecer melhor os operadores lógicos e condicionais que podemos utilizar no WHERE e uma breve descrição de sua função.


Operador Descrição
= Igual
!= ou <> Diferente
< Menor
> Maior
>= Maior ou Igual
<= Menor ou Igual
AND Exibe os resultados da consulta quando ambos as condições forem verdadeiras.
OR Exibe os resultados da consulta quando pelo menos uma das condições forem verdadeiras.
NOT É utilizado após o WHERE e faz uma inversão das condicionais, ou seja, retorna apenas os resultados que foram omitidos pelas condições definidas.
Tabela 5. Operadores lógicos e condicionais

Os operadores lógicos mais complexos como IN e LIKE foram separados em categorias separadas para que pudessem ter uma descrição mais detalhada de suas funções.

Confira também

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados