Introdução à cláusula WHERE

Como todos sabemos, o SQL (Structured Query Language) é uma das linguagens mais usadas para bancos de dados relacionais (banco de dados no qual os registros são salvos na forma de linhas e colunas). No SQL, as consultas são disparadas para atingir o banco de dados e executar as operações desejadas, seja DML (Data Manipulation Language), DDL (Data Definition Language) ou DCL (Data Control Language). O SQL usa algumas cláusulas como WHERE, GROUP BY, HAVING, ORDER BY que executam operações específicas. A cláusula WHERE é usada para aplicar condições e filtrar resultados enquanto recupera ou manipula quaisquer dados do banco de dados. É usada com as instruções SELECT, UPDATE e DELETE e a cláusula WHERE é opcional para ser usada com elas.

Em geral, os termos, cláusula WHERE,

  • Usado para filtrar as linhas de acordo com os critérios fornecidos.
  • Limita o número de linhas retornadas.
  • Seguido por uma condição lógica que retorna verdadeiro ou falso.
  • Funciona apenas se a condição mencionada retornar verdadeira.
  • Pode ser usado com as instruções SELECT, UPDATE ou DELETE.

1. Sintaxe com SELECT

SELECT column1, column2, column3… from table_name WHERE condition;

Aqui, o SELECT recuperará todos os dados da coluna1, coluna2, coluna3 da tabela (nomeada como nome_tabela) e a cláusula WHERE aplica as condições aos dados recuperados pela instrução SELECT e o filtra de acordo com a condição mencionada na instrução.

2. Sintaxe com UPDATE

UPDATE table_name SET column_name = value WHERE condition;

Aqui, a atualização atualizará o valor para o column_name com a condição where fornecida.

Os operadores lógicos e de comparação também podem ser usados ​​com a condição WHERE como e, ou, não, como, <, =, etc.

3. Sintaxe com DELETE

DELETE from table_name WHERE condition;

Na sintaxe acima:

Nome da tabelaNome da tabela na qual as operações precisam ser executadas.
condiçãoEspecifica a condição do filtro na qual os registros precisam ser filtrados
column_listNome das colunas da tabela

Exemplos

Considere uma tabela de alunos com diferentes colunas e valores mencionados abaixo:

Stu_idStu_nameStu_addressStu_phnoStu_percentage
1RahulAgra955780662585
2AnkitDélhi885566447175
3ShailendraNoida721345789692

Cenário 1

Recupere a identificação do aluno, o nome, o endereço e a porcentagem de todos os alunos que pontuaram mais de 80%.

Inquerir

SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;

Resultado:

Número de registros: 2

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra85
3ShailendraNoida92

Cenário # 2

Atualize a porcentagem de Rahul em 2%.

Inquerir

UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';

Resultado:

Linhas afetadas: 1

Se clicarmos na consulta para visualizar os campos atualizados:

Inquerir

SELECT * from students WHERE Stu_name ='Rahul';

Resultado:

Número de registros: 1

Stu_idStu_nameStu_addressStu_percentage
1RahulAgra87

Cenário # 3

O aluno Ankit saiu da escola, então exclua todo o registro dele da tabela.

Inquerir

DELETE from students WHERE Stu_name = 'Ankit';

Resultado:

Linhas afetadas: 1

Para visualizar o aluno da tabela atualizado:

Inquerir

SELECT * from students;

Resultado:

Linhas afetadas: 2

Stu_idStu_nameStu_addressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

Cláusula WHERE Operações

A cláusula WHERE mantém as condições nas quais os valores do banco de dados são filtrados. Vários operadores podem ser usados ​​com a cláusula WHERE. Alguns deles são fornecidos abaixo na tabela com um exemplo:

S.No.OperadorDescriçãoExemplo
1ERetorna true se a condição corresponderSELECT * dos alunos WHERE Stu_name = 'Rahul' e Stu_percentage = 85;
2)OURetorna true se qualquer um dos

correspondências de condição

SELECT * dos alunos WHERE Stu_name = 'Rahul' ou Stu_name = 'Shalendra';
3)DENTROO valor corresponde a qualquer um dos vários valores especificadosSELECT * dos alunos WHERE Stu_city IN ('AGRA', 'NOIDA');
4)NÃO EMO valor não corresponde a nenhum dos vários valores especificadosSELECT * dos alunos ONDE a ESTÚDIO NÃO ESTÁ ('AGRA', 'NOIDA');
5)=IgualSELECT * dos alunos ONDE

Stu_name = 'Rahul';

6>Maior queSELECT * dos alunos WHERE Stu_percentage> 80;
7)<Menor queSELECT * dos alunos WHERE Stu_percentage <78;
8)> =Melhor que ou igual aSELECT * dos alunos WHERE Stu_percenetage> = 70;
9<=Menos que ou igual aSELECT * dos alunos WHERE Stu_percenetage <= 70;
10)Não é igual aSELECT * dos alunos WHERE Stu_percentage 75;
11)ENTREO valor está entre um certo intervaloSELECT * dos alunos ONDE

Stu_percentage ENTRE 70 E 85;

12)GOSTAROs valores correspondem a um determinado padrão. Usado para executar pesquisas curingaSELECT * dos alunos WHERE Stu_city COMO 'AG%';

Nota: Há uma coisa que precisa ser lembrada ao trabalhar com a cláusula WHERE: ao especificar a condição, os valores numéricos não são citados entre aspas simples (''), enquanto os valores de texto (varchar) precisam ser citados em uma única citações (' ').

Como a cláusula WHERE funciona no SQL?

Embora os exemplos acima mostrem claramente como a cláusula WHERE é usada para filtrar os dados de acordo com a condição especificada pelo usuário e permita a execução mais rápida do código SQL, pois o número de registros retornados é limitado pela condição. O otimizador de consultas SQL trabalha primeiro na consulta usando FROM (tabela na qual a operação precisa ser executada) para recuperar, excluir ou atualizar e aplicar a cláusula WHERE aos resultados.

A cláusula WHERE pode ser usada apenas quando precisamos filtrar os resultados em uma única tabela ou associação de tabelas, pois funciona nos dados das linhas, mas quando, no caso das funções Agregadas, WHERE não pode ser usado para aplicar condições à consulta.

Vamos considerar o cenário em que a cláusula WHERE não pode ser usada:

Cenário: em uma tabela de 'filmes', recupere todos os detalhes de filmes que ganham mais de 10 crores em anos específicos como (2000, 2010, 2012..etc)

Inquerir:

SELECT * from movies GROUP BY Year_released HAVING earnings > 10;

O exemplo acima usa a cláusula HAVING em vez de WHERE, porque a cláusula WHERE não pode ser usada nas funções agregadas, enquanto HAVING pode, e essa também é uma das principais diferenças entre a cláusula WHERE e HAVING

Conclusão - Cláusula SQL WHERE

A explicação acima mostra claramente o uso da cláusula WHERE e sua implementação para diferentes cenários nas consultas SQL. Antes de escrever qualquer consulta, é preciso ter em mente o uso de cada cláusula e o cenário em que essa cláusula ou palavra-chave específica deve ser usada.

Artigos recomendados

Este é um guia para a cláusula SQL WHERE. Aqui discutimos o uso da cláusula WHERE e sua implementação para diferentes cenários. Você também pode consultar nossos outros artigos sugeridos -

  1. Tipos de junções no SQL
  2. Curingas no MySQL
  3. Consulta de Inserção SQL
  4. Chave estrangeira no SQL
  5. Os 6 principais tipos de junções no MySQL com exemplos