Database
 sql >> Base de Dados >  >> RDS >> Database

SQL WHERE Várias Condições


Neste tópico, aprenderemos como adicionar várias condições usando a cláusula WHERE.

Primeiro, vamos entender o conceito de cláusula WHERE.

A cláusula WHERE é usada para especificar uma condição ao recuperar registros de uma tabela.

A cláusula WHERE geralmente é usada com a instrução SELECT no SQL

A consulta SELECT exibirá apenas os registros que satisfaçam a condição especificada na cláusula WHERE

Pode haver uma ou mais condições especificadas na condição da cláusula WHERE de uma consulta SELECT.

Os operadores AND e OR são usados ​​para verificar várias condições usando a cláusula WHERE em uma única consulta.
  • Operador AND com cláusula WHERE

Sempre que o operador AND for usado entre as condições com a cláusula WHERE para verificar várias condições na consulta SELECT, os resultados serão exibidos quando apenas mais de uma condição fornecida na consulta for atendida.

Sintaxe:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];

Exemplo 1:

Considere a tabela de alunos abaixo. Consideraremos a mesma tabela para todos os exemplos a seguir.
Student_RollNo Nome_Aluno Student_Gender Student_MobileNumber Student_HomeTown Idade_aluno Student_Percentage
1 Rohit Mais Masculino 9890786123 Lucknow 23 75
2 Kunal Shah Masculino 7789056784 Chandigarh 20 68
3 Kartik Goenka Masculino 9908743576 Ahemdabad 22 92
4 Anupama Shah Feminino 8890907656 Chandigarh 24 94
5 Snehal Jain Feminino 8657983476 Surata 21 94

Agora, vamos ver alguns exemplos para entender esse conceito de forma prática.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";

Saída:

Há apenas um registro na tabela de alunos com o rolo número 2, que tem o gênero masculino e a cidade natal como Chandigarh. Mesmo que qualquer uma das condições especificadas não seja atendida, nesse caso, a saída não será a mesma. O registro/registros exibidos serão diferentes ou, em alguns casos, a saída pode ser um conjunto vazio se nenhum registro satisfizer ambas as condições.

Exemplo 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;

Saída:

Há apenas um registro com número de rolo '5' na tabela de alunos, que tem idade igual a '21' e percentual igual a '94'.

Exemplo 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Saída:

Entre todos os registros da tabela de alunos, há apenas um registro com número de rolo '4', que tem gênero como 'masculino', cidade de origem como 'Chandigarh' e idade igual a '24'. Este é o único registro que satisfaz todas as três condições.

Exemplo 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND  Student_Name = "Kartik Goenka" AND Student_Percentage = 92;

Saída:

Entre todos os registros da tabela de alunos, há apenas um registro com número de rolo '3' em que todas as três condições são atendidas, ou seja, sexo como masculino, nome igual a 'Kartik Goenka' e percentual igual a '92'.
  • Operador OR com cláusula WHERE

Sempre que o operador OR for usado entre as condições com a cláusula WHERE para verificar várias condições na consulta SELECT, os resultados serão exibidos quando pelo menos uma condição for atendida entre todas as outras condições gravadas em uma consulta.

Sintaxe:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];

Exemplo 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";

Saída:

Na tabela de alunos, há quatro registros com rolo número 1, 2, 3 e 4 que tem o gênero masculino ou cidade natal como Chandigarh. Mesmo que quaisquer condições especificadas sejam atendidas, esse registro será considerado como parte da saída. Em alguns casos, a saída pode ser um conjunto vazio se nenhum registro satisfizer nenhuma das condições.

Exemplo 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;

Saída:

Existem dois números de rolo de registros '4' e '5' na tabela de alunos, que tem idade igual a '21' ou porcentagem igual a '94'.

Exemplo 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Saída:

Dentre todos os registros da tabela de alunos, há três registros com número de rolo '2', '4' e '5', que tem um ou outro gênero como 'feminino'; cidade natal como 'Chandigarh' ou idade igual a '24'. Esses são os registros que satisfazem uma das três condições.

Exemplo 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR  Student_Name = "Kartik Goenka" OR Student_Percentage = 92;

Saída:

Entre todos os registros na tabela de alunos, há três registros com números de rolo '1', '2' e '3' em que qualquer uma das três condições é atendida, ou seja, sexo como masculino, nome igual a 'Kartik Goenka' ou porcentagem igual a '92'.
  • Operador AND e OR com cláusula WHERE em uma única consulta

Na consulta da cláusula WHERE com uma instrução SELECT, também podemos usar uma combinação de operadores AND e OR em uma única consulta. O objetivo de usar as combinações de operadores AND e OR em uma única consulta é testar o nível mais alto de condições complicadas.

Sintaxe:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];

Exemplo 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Saída:

De acordo com as condições em uma consulta, o registro deve ter gênero como 'feminino' e cidade natal como 'Chandigarh'. A idade do aluno pode ou não ser ‘24’. Portanto, há apenas um registro com número de rolo '4', que atende a essas condições. Mesmo que qualquer registro tenha gênero como 'feminino' e cidade natal diferente de 'Chandigarh' ou vice-versa, esse registro não será considerado na saída.

Exemplo 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Saída:

De acordo com as condições em uma consulta, o registro deve ter gênero como 'feminino' ou cidade natal como 'Chandigarh'. A idade do aluno não deve ser diferente de '24'. Portanto, existem dois registros com número de rolo '4' e '5' que atendem a essas condições.

Exemplo 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;

Saída:

Há apenas um registro na tabela de alunos com sexo como 'masculino', cidade de origem como 'Lucknow' e a porcentagem do aluno deve ser '75'. A idade de um aluno pode ser 23 ou diferente de 23.

Exemplo 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;

Saída:

Na tabela de alunos, há três registros que possuem gênero como 'masculino' e idade como '23'. A cidade natal pode ou não ser 'Lucknow'. Além disso, a porcentagem pode ou não ser '75'.