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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.