Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 14 da Aula 1 - Consultando os dados

Existe diferença entre select from COMPRAS where valor >= 1000 and valor <=3000 or valor >=5000; e select from COMPRAS where (valor >= 1000 and valor <=3000) or (valor >=5000); com ou sem parênteses ?

3 respostas
solução!

Olá Rodrigo,

Os parênteses seriam essenciais, caso você estivesse realizando alguma equação matemática e quisesse especificar para o banco qual realizar primeiro.

Mas, neste caso, que é apenas uma consulta entre valores, não há nenhuma diferença.

Rodrigo geralmente em casos onde nosso where possui apenas and's acredito não fazer muito diferença o uso dos parênteses pois tudo se baseia em and + and, ja fiz várias sql com e sem onde o resultado foi o mesmo.

Agora quando a sql possuí or é fundamental o uso dos parênteses, pois pode mudar muito a sql, o resultado, o tempo de execução.

Espero ter ajudado.

Oi Rodrigo, Boa tarde.

Vamos por partes?

1) Vou te dar uma dica na questão dos valor >= 1000 and valor <=3000 você pode evitar usando esse tipo de query usando o comando between que significa entre, então ficaria assim:

valor between 1000 and 3000

Bem melhor não é?

2) Os parênteses na maioria das vezes nos leva a precedência. Em alguns resultados podem trazer resultados diferentes, outros não, isso vai depender da sua operação. O que muda na verdade é a ordem de como o seu SELECT vai rodar, no caso ele vai buscar primeiro a consulta dentro do parêntese. Agora imagina se é um select que envolve uma operação matemática onde a precedência é divisão, multiplicação, soma e subtração ?

Tranquilo? Abraços.