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

Como conversar com alguém no WhatsApp sem adicionar o número aos contatos

Este processo pode, à primeira vista, parecer um pouco confuso para usuários que não são muito experientes usando seu smartphone. Mas uma vez que você conclua o processo , vai entender o método e parecerá mais fácil. 1. Abra o seu navegador preferido no seu smartphone e digite o seguinte link na...

Ler Notícia Completa

O que acontece com o cérebro no exato momento em que morremos

O que passa em nossa cabeça no momento da morte? Não se sabe exatamente e, embora os cientistas tenham alguma resposta, a resposta continua sendo um grande mistério. Além de difícil solução, tentar respondê-la pode criar implicações éticas. No entanto, uma equipe de cientistas da Universidade...

Ler Notícia Completa
Você gostará destes vídeos: