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

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

Operada e devolvida ao útero, menina que nasceu duas vezes hoje 'acorda sorrindo toda manhã'

Um bebê pode nascer duas vezes? Não é o caso da absoluta maioria das crianças, mas foi assim para a pequena Lynlee Boemer. Em outubro de 2015, sua mãe, Margaret Boemer, descobriu que estava grávida de gêmeos. Ela sofreu um aborto espontâneo, mas um dos bebês sobreviveu. Com dez semanas de ges...

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