Voltar para a lista de artigos Artigos
6 minutos de leitura

O que é a cláusula SQL WHERE?

A cláusula WHERE é uma parte fundamental da SQL. Esta cláusula filtra os resultados e aplica condições às consultas a SQL. Ela é mais comumente usada junto com a declaração SELECT. Se você é um novato completo neste tópico, você pode aprender os conceitos básicos de SQL, incluindo WHERE, em nosso curso SQL para Iniciantes

Este artigo explicará claramente como usar WHERE em uma consulta SQL. Depois de lê-lo, você terá a confiança e o conhecimento para integrar WHERE em seu trabalho diário.

Sintaxe da cláusula SQL WHERE

A sintaxe da cláusula WHERE da SQL é simples de entender. Ela deve vir após a palavra-chave FROM em sua consulta SQL:

SELECT *
FROM table
WHERE id = 100

Neste exemplo, há uma coluna inteira chamada id. Estamos selecionando todas as linhas onde o valor da coluna id é igual a 100.

Exemplos de cláusula SQL WHERE

Uma das melhores maneiras de aprender SQL é usando-o, então vamos trabalhar através de alguns exemplos diferentes de uso da cláusula WHERE. Você pode observar como ele é útil para situações do mundo real!

Imagine que operamos e possuímos um ginásio. Quando as pessoas se inscrevem como membros de uma academia, elas nos dão algumas informações básicas. Estas são armazenadas em nosso members tabela, que contém uma identificação única para cada membro, seu primeiro e último nome, sua idade e a data em que ingressaram na academia.

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
4AngelinaJolie452019-04-02
5MerylStreep712014-03-21

Se você é completamente novo em SQL ou se precisa atualizar seus conhecimentos sobre a declaração SELECT, reserve um momento para ler este artigo. SELECT aparecerá ao longo deste artigo, por isso é importante que você o entenda.

Usando WHERE com Números

Se quisermos recuperar os detalhes de um de nossos membros e conhecermos sua identificação única, podemos escrever uma pergunta como esta:

SELECT * 
FROM members 
WHERE id = 3

Isto permitiria recuperar todos os dados para este membro, Tom Hanks:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Usando WHERE com texto

O exemplo anterior utilizou WHERE em conjunto com um valor numérico de nossa coluna id. Entretanto, você pode usar WHERE com muitos tipos de dados diferentes. Vejamos um exemplo usando a cláusula WHERE com um valor de texto. Neste caso, procuraremos em nossas colunas VARCHAR, FirstName e LastName.

SELECT * 
FROM members 
WHERE FirstName = 'Tom' AND LastName = 'Hanks'

Observe como os valores de texto que queremos corresponder estão rodeados por aspas simples. Você deve fazer isso sempre que incluir um valor de texto em sua consulta. A execução desta consulta retorna os seguintes dados:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Fantástico! Este é exatamente o resultado que queríamos.

Olhe novamente para a consulta. Você notou o operador AND? A cláusula WHERE é freqüentemente combinada com o uso de três operadores SQL diferentes - AND, OR, e NOT:

  • Uma cláusula WHERE com AND exige que ambas as condições sejam verdadeiras.
  • Uma cláusula WHERE com OR exige que ambas as condições sejam verdadeiras.
  • Uma cláusula WHERE com NOT exige que a condição especificada não seja verdadeira.

Experimente estes operadores por si mesmo modificando a consulta utilizada acima. Observe o efeito que ela tem sobre os dados que são devolvidos. A melhor maneira de entender completamente estes operadores é ler tutoriais dedicados ao m e praticar consultas de escrita que incluem os operadores AND, OR, e NOT. Aqui estão formas mais úteis de praticar o SQL online.

Usando WHERE para obter uma gama de valores

Nosso próximo exemplo será a utilização de operadores de comparação (<,>,>=,<=,!=) em conjunto com o SQL E o operador que acabamos de cobrir. Imagine que queremos atingir todos em seus cinqüenta anos com uma oferta promocional. Como vamos isolar os membros com um valor de idade entre 50 e 59 anos? Veja a consulta SQL abaixo:

SELECT * 
FROM members 
WHERE Age >= 50 AND Age < 60

Preste atenção especial à sintaxe que segue a palavra-chave WHERE.

Esta consulta SQL, traduzida em inglês simples, simplesmente diz: "Selecione todos os membros onde a idade é maior ou igual a 50 anos e a idade é inferior a 60 anos". A sua execução produz este resultado:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15

Aí o temos! Todos os nossos membros que estão na casa dos 50 anos foram devolvidos. Podemos agora visar esses membros com nossa próxima oferta especial.

Estas são apenas algumas das maneiras que você pode usar a cláusula SQL WHERE para ajudá-lo a reduzir suas consultas. Uma das coisas mais importantes em SQL é ter a capacidade de filtrar através de grandes quantidades de dados; a cláusula WHERE ajuda você a conseguir isso.

Usando WHERE com UPDATE

A cláusula WHERE também pode ser combinada com as declarações UPDATE e DELETE. UPDATE é usado para modificar os registros existentes em seu banco de dados. A declaração DELETE é usada para remover completamente um registro de seu banco de dados.

Então, como o uso do UPDATE em conjunto com a cláusula WHERE realmente funciona? Imagine que a membro do ginásio Angelina Jolie se casou recentemente e levou o sobrenome de seu marido. Precisamos atualizar o sobrenome dela em nosso banco de dados. Para fazer isso, você encontrará o id para Angelina Jolie e o usará em sua consulta:

UPDATE members SET LastName = 'Clooney' WHERE id = 4

A coluna que você gostaria de atualizar segue a palavra-chave SET. É muito importante que você inclua a cláusula WHERE ao usar a declaração UPDATE; se não o fizer, ela definirá o LastName como 'Clooney' para todos os registros na tabela.

Agora vamos ver o efeito que esta consulta teve em nosso conjunto de dados, executando a seguinte consulta:

SELECT id, FirstName, LastName 
FROM members 
WHERE id = 4
idFirstNameLastName
4AngelinaClooney

Sucesso! Como você pode ver, os dados foram atualizados corretamente. UPDATE é uma ferramenta poderosa e lhe permite atualizar quaisquer valores incorretos em seu conjunto de dados.

Usando WHERE com DELETE

E se quiséssemos remover um registro da nossa tabela de banco de dados por completo? Usando WHERE em combinação com a declaração DELETE torna isso possível. A sintaxe para DELETE é simples, e quando aplicada ao nosso exemplo, ela parece ser a seguinte:

DELETE FROM members 
WHERE id = 4

Usamos nossa cláusula WHERE para especificar exatamente que registro queremos excluir. É importante observar que se vários registros tiverem o mesmo valor id (neste caso, 4), todos esses registros seriam excluídos da tabela.

Tenha muito cuidado ao usar a declaração DELETE; é uma boa idéia sempre SELECT os registros primeiro, para que você saiba exatamente o que está apagando.

Podemos ver o efeito de nossa declaração DELETE, selecionando todos os nossos registros:

SELECT * 
FROM members 

A execução desta consulta SQL produz o seguinte conjunto de resultados:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
5MerylStreep712014-03-21

Encontrar dados exatos com a cláusula WHERE do SQL

Agora você tem a capacidade de encontrar e interagir com os dados exatos que deseja. WHERE é uma ferramenta extremamente poderosa em seu arsenal. Você pode usar esta cláusula em conjunto com UPDATE, DELETE, e SELECT. Isto lhe permite manipular e apresentar dados de inúmeras maneiras - as possibilidades são infinitas!

Se você quiser continuar aprendendo SQL usando um recurso eficaz e comprovado, considere nosso SQL para Iniciantes curso, que lhe equipará com um conhecimento fundamental de SQL.