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 ?
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 ?
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.