Parentheses. Use these to force the order of evaluation in an expression
7.3.9 Fonctions mathématiques
Toutes les fonctions mathématiques retourne NULL en cas d'erreur.
- Moins unaire. Change le signe de l'argument.
mysql> select - 2;
-> -2
Note : si cet opérateur est utilisé avec un BIGINT, le résultat sera BIGINT! Cela signifie qu'il faut éviter d'utiliser – sur des entiers qui ont la valeur -2^63!
ABS(X) Valeur absolue de X.
mysql> select ABS(2);
-> 2
mysql> select ABS(-32);
-> 32
Cette fonction ne pose aucun problème particulier avec les valeurs de type BIGINT.
SIGN(X) Retourne le signe de l'argument sous la forme -1, 0 or 1, suivant que X est négatif, nul, ou positif.
MOD(N,M) % Modulo (identique à l'opérateur % en langage C). Retourne le reste de la division euclidienne de N par M.
Cette fonction ne pose aucun problème particulier avec les valeurs de type BIGINT.
FLOOR(X) Retourne le plus grand entier possible mais plus petit que X.
mysql> select FLOOR(1.23);
-> 1
mysql> select FLOOR(-1.23);
-> -2
Note : le résultat est converti en BIGINT!
CEILING(X) Retourne le plus petit entier possible mais plus grand que X.
mysql> select CEILING(1.23);
-> 2
mysql> select CEILING(-1.23);
-> -1
Note : le résultat est converti en BIGINT!
ROUND(X) Retourne l'argument X, arrondi à l'entier le plus proche.
mysql> select ROUND(-1.23);
Note : le résultat est converti en BIGINT!
ROUND(X,D) Retourne l'argument X, arrondi au décimal le plus proche, avec D décimales. Si D =0, le résultat n'aura pas de partie décimale.
mysql> select ROUND(1.298, 1);
-> 1.3
mysql> select ROUND(1.298, 0);
-> 1
Note : le résultat est converti en BIGINT!
EXP(X) Retourne la valeur de e (base des logarithmes naturels ou népériens) à la puissance X.
mysql> select EXP(2);
-> 7.389056 mysql> select EXP(-2);
-> 0.135335
LOG(X) Retourne le logarithme naturel de X.
mysql> select LOG(2);
-> 0.693147 mysql> select LOG(-2);
-> NULL
Pour obtenir la valeur du logarithme de X dans une base arbitraire, il faut utiliser la formule LOG(X)/LOG(B).
LOG10(X) Retourne le logarithme de X en base 10.
mysql> select LOG10(2);
POW(X,Y) POWER(X,Y) Retourne la valeur de X à la puissance Y.
mysql> select POW(2,2);
-> 4.000000 mysql> select POW(2,-2);
-> 0.250000
SQRT(X) Retourne la racine carrée positive de X.
mysql> select SQRT(4);
-> 2.000000 mysql> select SQRT(20);
-> 4.472136 PI() Retourne la valeur de PI.
mysql> select PI();
-> 3.141593
COS(X) Retourne le cosinus de X, avec X en radians.
mysql> select COS(PI());
-> -1.000000
SIN(X) Retourne le sinus de X, avec X en radians.
mysql> select SIN(PI());
-> 0.000000
TAN(X) Retourne la tangente de X, avec X en radians.
mysql> select TAN(PI()+1);
-> 1.557408
ACOS(X) Retourne l'arcosinus de X, c'est à dire l'angle dont le cosinus est X en radians. Retourne NULL si X n'est pas compris entre -1 et 1.
mysql> select ACOS(1);
-> 0.000000
mysql> select ACOS(1.0001);
-> NULL
mysql> select ACOS(0);
-> 1.570796
ASIN(X) Retourne l'arsinus de X, c'est à dire l'angle dont le sinus est X en radians. Retourne NULL si X n'est pas compris entre -1 et 1.
mysql> select ASIN(0.2);
-> 0.201358
mysql> select ASIN('foo');
-> 0.000000
ATAN(X) Retourne l'arctangente de X, c'est à dire l'angle dont la tangente est X en radians.
mysql> select ATAN(2);
-> 1.107149 mysql> select ATAN(-2);
-> -1.107149
ATAN2(X,Y) Retourne l'arc tangente de deux variables X et Y. C'est le même calcul que arc tangent of Y / X, hormis le fait que les signes des deux arguments est utilisé pour déterminer le quadrant du résultat.
mysql> select ATAN(-2,2);
-> -0.785398
mysql> select ATAN(PI(),0);
-> 1.570796
COT(X) Retourne la cotangente de X.
mysql> select COT(12);
-> -1.57267341 mysql> select COT(0);
-> NULL
RAND() RAND(N) Retourne un nombre aléatoire, compris entre 0 et 1.0. Si un entier N est précisé, il est utilisé comme valeur de seed.
mysql> select RAND();
-> 0.5925
mysql> select RAND(20);
-> 0.1811
mysql> select RAND(20);
-> 0.1811 mysql> select RAND();
-> 0.2079 mysql> select RAND();
-> 0.7888
Il est impossible d'utiliser une colonne de valeur RAND() avec la clause ORDER BY , car la colonne sera évalué plusieurs fois. Avec MySQL 3.23, il est cependant possible d'écrire: SELECT * FROM Nom_table ORDER BY RAND(). Comme cela, il est possible de faire une sélection aléatoire d'une table : SELECT * FROM table1,table2
LEAST(X,Y,...) Au moins deux arguments, retourne la plus petite valeur (minimum). Les arguments sont comparés en utilisant les règles suivantes :
Si LEAST est utilisé dans un contexte d'entiers, ou bien tous les arguments sont des entiers, les arguments sont évalués et comparés en tant qu'entiers.
Si LEAST est utilisé dans un contexte de nombre à virgule flottante, les arguments sont évalués et comparés en tant que nombre à virgule flottante.
Si tous les arguments sont des chaînes sensibles à la casse, tous les arguments sont comparés comme des chaînes insensibles à la casse.
Dans tous les autres cas, les arguments sont comparés comme des chaînes insensibles à la casse.
mysql> select LEAST(2,0);
-> 0
mysql> select LEAST(34.0,3.0,5.0,767.0);
-> 3.0mysql> select LEAST("B","A","C");
-> "A"
Avec les version de MySQL antérieur à la 3.22.5, il est possible d'utiliser MIN() à la place de LEAST.
GREATEST(X,Y,...) Retourne le plus grand argument de la liste. Les arguments sont comparés de la même manière que pour 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"
Avec les version de MySQL antérieur à la 3.22.5, il est possible d'utiliser MAX () à la place de GREATEST.
DEGREES(X) Retourne l'argument X, converti de radians en degrés.
mysql> select DEGREES(PI());
-> 180.000000
RADIANS(X) Retourne l'argument X, converti de radians degrés en radians.
mysql> select RADIANS(90);
-> 1.570796
TRUNCATE(X,D) Retourne l'argument X, tronqué à D décimales.
mysql> select TRUNCATE(1.223,1);
-> 1.2
mysql> select TRUNCATE(1.999,1);
-> 1.9
mysql> select TRUNCATE(1.999,0);
-> 1