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á!