Minicursos - MySQL

Precedência de Operadores


Assim como em qualquer linguagem de programação, o MySQL obedece uma ordem quando encontra vários operadores em um mesmo comando. É muito importante conhecê-la, pois isso pode resolver problemas de dados sendo retornados incorretamente graças a incorreta formulação do comando. Vejam a tabela abaixo:

Prioridade Operador Descrição
6 () Parênteses
5 / ou * Divisão ou Multiplicação, o que aparecer primeiro no comando
4 - ou + Subtração ou Soma, o que aparecer primeiro no comando
3 NOT Negação
2 AND E Lógico
1 OR OU Lógico

Através desta tabela podemos perceber que o parênteses é o operador presente no topo da pirâmide hierarquica e o operador com menor prioridade é o OU Lógico. Vou demonstrar isso na prática, criando uma situação em que os parênteses sejam usados para inverter a precedência de outros operadores.

De acordo com a tabela acima, a multiplicação é executada antes da soma. Vamos verificar na prática com o seguinte comando:

select codigo*2+5 AS RESULTADO from filme WHERE codigo=4;

Precedência de Operadores MySQL

Mas, se quiséssemos forçar a multiplicação primeiro, bastaríamos acrescentar parênteses nela, da seguinte forma:

select codigo*(2+5) AS RESULTADO from filme WHERE codigo=4;

Precedência de Operadores MySQL

Agora, com o resultado sendo 28, podemos perceber que a soma, mesmo tendo precedência mais baixa que a multiplicação, foi executada primeiro, graças aos parênteses, que têm prioridade sobre quem está fora deles. O que é importante que fique bem claro com este pequeno tópico é que é necessário ter muita atenção no momento de montar suas consultas SQL. Para consultas pequenas, envolvendo uma única tabela ou até duas, é fácil montar o comando correto, mas para consultas mais complexas a atenção precisa ser redobrada.



Você gostará destes vídeos: