Minicursos - MySQL

Where com operadores lógicos


Os operadores lógicos que a linguagem SQL aceita são o AND, OR e o NOT. De forma bem simplificada, seu funcionamento se resume a:

- AND - deve ser usado sempre que duas condições precisarem ser atendidas

- OR – deve ser usado quando apenas uma condição precisar ser atendida

- NOT – será usado quando você quiser negar uma condição.

Através dos operadores lógicos nós podemos tornar nossas buscas com o parâmetro WHERE ainda mais precisas. No tópico anterior fizemos algumas buscas usando o campo "idade" da tabela "cliente" como referência. Em uma das buscas o SGBD retornou pessoas com idade SUPERIOR a 30 anos e em outra com idade IGUAL OU SUPERIOR a 30 anos. Bom, mas e se quiséssemos pessoas com idade entre 29 e 34 anos, incluindo esses dois valores? Essa consulta só seria possível com o uso de um operador lógico, da seguinte forma:

SELECT nome AS Nome, idade AS Idade FROM cliente WHERE idade >= 29 AND idade <= 34;

Vejam o retorno do SGBD:

Where Operadores Lógicos MySQL

Percebam que dessa forma conseguimos especificar um intervalo de idade. Poderia haver uma situação onde você quisesse retornar todos os clientes que possuem idade menor do que 20 anos OU maior do que 30. Nesse caso o operador lógico que nos atenderia seria o OR, da seguinte maneira:

SELECT nome AS Nome, idade AS Idade FROM cliente WHERE idade < 20 OR idade > 30;

Vejam o retorno dessa consulta:

Where Operadores Lógicos MySQL

Vejam que agora nós excluímos os resultados de clientes com idades entre 20 e 30 anos.

No tópico anterior fizemos uma busca utilizando o caractere coringa %, que nos retornou todos os clientes cujos nomes iniciavam com a letra R. E se quiséssemos o contrário, ou seja, todos os clientes cujos nomes NÃO iniciem com a letra R? Bem, para solucionar isso podemos fazer uso do operador lógico NOT, dessa maneira:

SELECT nome as Nome, idade AS idade FROM cliente WHERE nome NOT like 'R%';

Where Operadores Lógicos MySQL

Vejam que nosso retorno contém todos os nomes que NÃO são iniciados pela letra R. Poderíamos combinar essa consulta com uma condição especificando que só nos interessa os clientes com idades menores do que 25 anos, com o comando abaixo:

SELECT nome as Nome, idade AS idade FROM cliente WHERE nome NOT like 'R%' AND idade < 25;

Where Operadores Lógicos MySQL

Agora o resultado eliminou as idades superiores ou iguais a 25 anos. Como você pôde perceber, é possível combinar os operadores AND, OR e NOT conforme sua necessidade.

No tópico seguinte falarei sobre outros operadores interessantes.




Algumas notícias

Xiaomi vende 52,9 milhões de celulares no segundo trimestre de 2021 e faturamento dispara

A gigante chinesa Xiaomi registrou um aumento de quase 85% no seu faturamento no segundo trimestre de 2021 em comparação ao mesmo período do ano passado. A receita divulgada pela empresa foi de 13,5 bilhões de dólares (algo em torno de 70 bilhões de reais) nos meses de abril a junho deste ano...

Ler Notícia Completa

Galaxy S9 e Galaxy S9 Plus receberão atualização de segurança este mês

A Samsung começou a liberar esta semana, para proprietários dos modelos Galaxy S9 e Galaxy S9 Plus, uma nova atualização de segurança. Por enquanto somente alguns países da Europa receberam o pacote, que deve ser dis...

Ler Notícia Completa
Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos!