Introdução ao Sql Parte XI
Operadores Lógicos
(AND, OR e NOT)
Muitas vezes, apenas uma condição não é o suficiente para determinarmos o critério de busca. Sempre que isso ocorrer, podemos utilizar operadores lógicos. Veja a tabela a seguir os operadores lógicos:
Operador |
Significado |
Exemplo |
AND |
e |
Condição-1 AND condição-2 |
OR |
ou |
Condiçao-1 OR condição-2 |
NOT |
Não/negação |
NOT condição |
AND
O operador AND indica que as duas condições devem ser verdadeiras para que seja mostrada a linha. EXEMPLO:
SELECT CODIGO, NOME,
ENDERECO FROM TABELA
WHERE NOME = ‘JOSE
GUSTAVO’ AND CODIGO = 2;
OR
Utilizamos o operador OR quando quisermos que o resultado final seja verdadeiros sempre que uma das duas condições forem verdadeiras (ou ambas ).
SELECT NOME, PRECO, CODIGO FROM
TABELA
WHERE PRECO > 8 OR
CODIGO = 2;
Não há limitação no uso e na combinação de condições utilizando operadores AND e OR. Mas devemos tomar cuidado na combinação de ambos. A avaliação desse tipo de condição é, no padrão, da esquerda para a direita. É conveniente utilizar parênteses para determinar o que você quer comparar. Assim, o resultado dos dois comandos a seguir pode não ser exatamente o que você está esperando:
SELECT NOME, CODIGO, PRECO FROM
TABELA
WHERE CODIGO = 2 OR
CODIGO = 3 AND PRECO > 15;
Desta forma ele trará todos os registros que o preço sejam maior que 15 e trará também os registros de código 2 e 3, independente se ele tem o preço maior que 15. Por isso sugiro a você cuidado na utilização dos operados lógicos.
Not ou
É utilizado para inverter o resultado
de uma expressão lógica, negando o resultado da condição. Caso a condição seja
verdadeira, será retornado falso e vice-versa.
SELECT NOME, PRECO, CODIGO FROM
TABELA
WHERE NOT (PRECO < 10);
Desta maneira, você esta
buscando somente as linhas da tabela que tenha o preço maior que 10.
Mais uma vez, apesar de
opcional, o uso de parênteses deixa mais claro o que está sendo esperado do
comando. Pode-se avaliar com o NOT expressões complexas incluindo as cláusulas
AND e OR.
SELECT NOME, PRECO, CODIGO FROM
TABELA
WHERE NOT (CODIGO = 2 OR CODIGO = 3) AND PRECO >
12;
Neste
caso acima, busco todos os nomes que o código não seja 2 e 3 e que o preço seja
maior que 12. Se utilizarmos o NOT em ambas as condições, teremos:
SELECT NOME, PRECO, CODIGO FROM
TABELA
WHERE NOT (CODIGO = 2 OR CODIGO = 3) AND NOT PRECO
> 12;
Neste
caso acima, busco todos os nomes que o código não seja 2 e 3 e que o preço não
seja maior que 12
Fico
por aqui, no próximo artigo, falarei de Operadores especiais, até lá!