Todas as funções matematicas retornam
          NULL no caso de um erro.
        
              -
            
Menos unario. Muda o sinal do argumento:
mysql> SELECT - 2;
        -> -2
              Note que se este operador é utilizando com um
              BIGINT, o valor retornado é um
              BIGINT! Isto significa que você deve
              evitar usar - em inteiros que pode ter
              o valor de -2^63!
            
              ABS(X)
            
              Retorna o valor absoluto de X:
mysql>SELECT ABS(2);-> 2 mysql>SELECT ABS(-32);-> 32
              O uso desta função é seguro com valores
              BIGINT.
            
              SIGN(X)
            
              Retorna o sinal do argumento como -1,
              0, ou 1, dependendo
              de quando X é negativo, zero, ou
              positivo:
mysql>SELECT SIGN(-32);-> -1 mysql>SELECT SIGN(0);-> 0 mysql>SELECT SIGN(234);-> 1
              MOD(N,M), %
            
              Modulo (como o operador % em C).
              Retorna o resto de N dividido por
              M:
mysql>SELECT MOD(234, 10);-> 4 mysql>SELECT 253 % 7;-> 1 mysql>SELECT MOD(29,9);-> 2 mysql>SELECT 29 MOD 9;-> 2
              O uso desta função é seguro com valores
              BIGINT. O último exemplo só funciona
              no MySQL 4.1
            
              FLOOR(X)
            
              Retorna o maior valor inteiro não maior que
              X:
mysql>SELECT FLOOR(1.23);-> 1 mysql>SELECT FLOOR(-1.23);-> -2
              Note que o valor retornado é convertido para um
              BIGINT!
            
              CEILING(X), CEIL(X)
            
              Retorna o menor valor inteiro não menor que
              X:
mysql>SELECT CEILING(1.23);-> 2 mysql>SELECT CEIL(-1.23);-> -1
              O alias CEIL() foi adicionado versão
              4.0.6.
            
              Note que o valor retornado é convertido para um
              BIGINT!
            
              ROUND(X), ROUND(X,D)
            
              Retorna o argumeto X, arredondado para
              o inteiro mais próximo. Com dois argumentos o
              arredandamento é feito para um número com
              D decimais.
mysql>SELECT ROUND(-1.23);-> -1 mysql>SELECT ROUND(-1.58);-> -2 mysql>SELECT ROUND(1.58);-> 2 mysql>SELECT ROUND(1.298, 1);-> 1.3 mysql>SELECT ROUND(1.298, 0);-> 1 mysql>SELECT ROUND(23.298, -1);-> 20
              Note que o comportamento de ROUND()
              quando o argumento está no meio do caminho entre dois
              inteiros depende da implementação da biblioteca C.
              Alguns arredondamentos para o número mais próximo, são
              sempre para baixo, para cima ou são zero. Se você
              precisa de um tipo de arredondamento, você deve usar uma
              função bem definida como TRUNCATE()
              ou FLOOR().
            
              DIV
            
              Divisão de inteiros. Similar ao
              FLOOR() mas seguro com valores
              BIGINT.
mysql> SELECT 5 DIV 2
  -> 2
              DIV é novo no MySQL 4.1.0.
            
              EXP(X)
            
              Retorna o valor de e (the base of
              natural logarithms) raised to the power of
              X:
mysql>SELECT EXP(2);-> 7.389056 mysql>SELECT EXP(-2);-> 0.135335
              LN(X)
            
              Retorna o logaritmo natural de X:
mysql>SELECT LN(2);-> 0.693147 mysql>SELECT LN(-2);-> NULL
              Esta função foi adicionada na versão 4.0.3 do MySQL. É
              sinônimo de LOG(X) no MySQL.
            
              LOG(X), LOG(B,X)
            
              Se chamado com um parâmetro, esta função retorna o
              logarítmo natural de X:
mysql>SELECT LOG(2);-> 0.693147 mysql>SELECT LOG(-2);-> NULL
              Se chamado com dois parâmetros, esta função retorna o
              logarítmo natural de X para uma base
              arbitraria B:
mysql>SELECT LOG(2,65536);-> 16.000000 mysql>SELECT LOG(1,100);-> NULL
              A opção de base arbitrária foi adicionada na versão
              4.0.3 do MySQL. LOG(B,X) é equivalente
              a LOG(X)/LOG(B).
            
              LOG2(X)
            
              Returna o logarítmo na base 2 de X:
mysql>SELECT LOG2(65536);-> 16.000000 mysql>SELECT LOG2(-100);-> NULL
              LOG2() é útil para descobrir quantos
              bits um número necessitaria para ser armazenado. Esta
              função foi adicionada na versão 4.0.3 do MySQL. Em
              versões anteriores, você pode usar
              LOG(X)/LOG(2).
            
              LOG10(X)
            
              Returna o logarítmo na base 10 de X:
mysql>SELECT LOG10(2);-> 0.301030 mysql>SELECT LOG10(100);-> 2.000000 mysql>SELECT LOG10(-100);-> NULL
              POW(X,Y), POWER(X,Y)
            
              Retorna o valor de X elevado a
              potência de Y:
mysql>SELECT POW(2,2);-> 4.000000 mysql>SELECT POW(2,-2);-> 0.250000
              SQRT(X)
            
              Retorna o a raiz quadrada não negativa de
              X:
mysql>SELECT SQRT(4);-> 2.000000 mysql>SELECT SQRT(20);-> 4.472136
              PI()
            
Retorna o valor de PI. A quantidade de números decimais padrão é 5, mas o MySQL usa internamente a precisão dupla completa para PI.
mysql>SELECT PI();-> 3.141593 mysql>SELECT PI()+0.000000000000000000;-> 3.141592653589793116
              COS(X)
            
              Retorna o cosseno de X, onde
              X é dado em radianos:
mysql> SELECT COS(PI());
        -> -1.000000
              SIN(X)
            
              Retorna o seno de X, onde
              X é dado em radianos:
mysql> SELECT SIN(PI());
        -> 0.000000
              TAN(X)
            
              Retorna a tangente de X, onde
              X é dado em radianos:
mysql> SELECT TAN(PI()+1);
        -> 1.557408
              ACOS(X)
            
              Retorna o arco cosseno X, isto é, o
              valor cujo cosseno é X. Retorna
              NULL se X não está
              na faixa de -1 a 1:
mysql>SELECT ACOS(1);-> 0.000000 mysql>SELECT ACOS(1.0001);-> NULL mysql>SELECT ACOS(0);-> 1.570796
              ASIN(X)
            
              Retorna o arco seno X, isto é, o valor
              cujo seno é X. Retorna
              NULL se X não está
              na faixa de -1 a 1:
mysql>SELECT ASIN(0.2);-> 0.201358 mysql>SELECT ASIN('foo');-> 0.000000
              ATAN(X)
            
              Retorna o arco tangente X, isto é, o
              valor cuja tangente é X.
              X:
mysql>SELECT ATAN(2);-> 1.107149 mysql>SELECT ATAN(-2);-> -1.107149
              ATAN(Y,X),
              ATAN2(Y,X)
            
              Retorna o arco tangente de duas variaveis
              X e Y. É similar ao
              caclculo do arco tengente de Y / X,
              exceto que os sinais de ambos argumentos são usados para
              determinas o quadrante do resultado:
mysql>SELECT ATAN(-2,2);-> -0.785398 mysql>SELECT ATAN2(PI(),0);-> 1.570796
              COT(X)
            
              Returns a cotangente de X:
mysql>SELECT COT(12);-> -1.57267341 mysql>SELECT COT(0);-> NULL
              CRC32(expr)
            
              Calcula um valor de verificação de redundância cíclica
              e retorna um valor unsigned de 32 bits. O resultado é
              NULL se o argumento é
              NULL. O argumento esperado é uma
              string e será tratado como tal se não for.
            
mysql> SELECT CRC32('MySQL');
        -> 3259397556
              CRC32() está disponível a partir do
              MySQL 4.1.0.
            
              RAND(), RAND(N)
            
              Retorna um valor de ponto flutuante aleatório na faixa de
              0 a 1.0. Se um
              argumento inteiro N é especificado,
              ele é usado como uma semente (produzindo uma sequência
              repetitiva):
mysql>SELECT RAND();-> 0.9233482386203 mysql>SELECT RAND(20);-> 0.15888261251047 mysql>SELECT RAND(20);-> 0.15888261251047 mysql>SELECT RAND();-> 0.63553050033332 mysql>SELECT RAND();-> 0.70100469486881
              Você não pode usar uma coluna com valores
              RAND() em uma cláusula ORDER
              BY, pois ORDER BY avaliaria a
              coluna múltiplas vezes. Na versão 3.23 você pode fazer:
              SELECT * FROM nome_tabela ORDER BY
              RAND()
            
              Isto é útil para obter um amostra aleatória de um
              conjunto SELECT * FROM tabela1,tabela2 WHERE a=b
              AND c<d ORDER BY RAND() LIMIT 1000.
            
              Note que um RAND() em uma cláusula
              WHERE será reavliado toda vez que
              WHERE é executado.
            
              RAND() não é um gerador de números
              aletatórios perfeito, mas é um modo rápido de se gerar
              números aleatórios ad hoc que serão portáveis entre
              plataformas para a mesma versão do MySQL.
            
              LEAST(X,Y,...)
            
Com dois ou mais argumentos, retorna o menor (valor-mínimo) argumento. Os argumentos são comparados usando as seguintes regras:
                    Se o valor de retorno é usado em um contexto
                    INTEGER, ou todos argumentos são
                    valores inteiro, eles são comparados como inteiros.
                  
                    Se o valor de retorno é usado em um contexto
                    REAL, ou todos argumentos são
                    valores reais, eles são comparados como inteiros.
                  
Se qualquer um dos argumento for uma string caso-sensitivo, os argumentos são comparados como strings caso-sensitivo.
Nos outros casos, os argumentos são comparados como strings caso-insensitivo:
mysql>SELECT LEAST(2,0);-> 0 mysql>SELECT LEAST(34.0,3.0,5.0,767.0);-> 3.0 mysql>SELECT LEAST("B","A","C");-> "A"
              Em versões do MySQL anteriores a versão 3.22.5, você
              pode usar MIN() no lugar de
              LEAST.
            
              GREATEST(X,Y,...)
            
              Retorna o maior (valor máximo) argumento. Os argumentos
              são comparados usando as mesmas regras do
              LEAST:
mysql>SELECT GREATEST(2,0);-> 2 mysql>SELECT GREATEST(34.0,3.0,5.0,767.0);-> 767.0 mysql>SELECT GREATEST("B","A","C");-> "C"
              Em versões do MySQL anteriores a versão 3.22.5, você
              pode usar MAX() no lugar de
              GRATEST.
            
              DEGREES(X)
            
              Retorna o argumento X, convertido de
              radianos para graus:
mysql> SELECT DEGREES(PI());
        -> 180.000000
              RADIANS(X)
            
              Retorna o argumento X, convertido de
              graus para radianos:
mysql> SELECT RADIANS(90);
        -> 1.570796
              TRUNCATE(X,D)
            
              Retiorna o número X, truncado para
              D casas decimais. Se
              D é 0, o resultado
              não terá ponto deciaml ou prate fracionária:
mysql>SELECT TRUNCATE(1.223,1);-> 1.2 mysql>SELECT TRUNCATE(1.999,1);-> 1.9 mysql>SELECT TRUNCATE(1.999,0);-> 1 mysql>SELECT TRUNCATE(-1.999,1);-> -1.9
A partir do MySQL 3.23.51 todos o números são arredondados para zero.
              Se D é negativo, então D numeros da
              parte inteira são zerados:
            
mysql> SELECT TRUNCATE(122,-2);
       -> 100
Note que como os números decimais não são normalmente armazenados como números exatos, mas como valores de dupla precisão, você pode obter o seguinte resultado:
mysql> SELECT TRUNCATE(10.28*100,0);
       -> 1027
O resultado acima acontece porque 10.28 é, na verdade, armazenado como 10.2799999999999999.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

