Toutes les fonctions mathématiques retournent
NULL
en cas d'erreur.
Retourne la valeur absolue de X
.
mysql>SELECT ABS(2);
-> 2 mysql>SELECT ABS(-32);
-> 32
Cette fonction est utilisable avec les valeurs issues des
champs BIGINT
.
Retourne l'arccosinus de X
, c'est à
dire, la valeur de l'angle dont X
est la
cosinus. Retourne NULL
si
X
n'est pas dans l'intervalle
-1
- 1
.
mysql>SELECT ACOS(1);
-> 0.000000 mysql>SELECT ACOS(1.0001);
-> NULL mysql>SELECT ACOS(0);
-> 1.570796
Retourne l'arcsinus de X
, c'est à dire,
la valeur de l'angle dont le sinus est X
.
Retourne NULL
si X
n'est pas dans l'intervalle -1
-
1
:
mysql>SELECT ASIN(0.2);
-> 0.201358 mysql>SELECT ASIN('foo');
-> 0.000000
Retourne l'arctangente de X
, c'est à
dire, la valeur de l'angle dont la tangente est
X
.
mysql>SELECT ATAN(2);
-> 1.107149 mysql>SELECT ATAN(-2);
-> -1.107149
Retourne l'arctangente des variables X
et
Y
. Cela revient à calculer l'arctangente
de Y / X
, excepté que les signes des
deux arguments servent à déterminer le quadrant du
résultat :
mysql>SELECT ATAN(-2,2);
-> -0.785398 mysql>SELECT ATAN2(PI(),0);
-> 1.570796
Retourne la valeur entière supérieure de
X
.
mysql>SELECT CEILING(1.23);
-> 2 mysql>SELECT CEILING(-1.23);
-> -1
Notez que la valeur retournée sera de type
BIGINT
!
Retourne le cosinus de X
, où
X
est donné en radians.
mysql> SELECT COS(PI());
-> -1.000000
Retourne la cotangente de X
.
mysql>SELECT COT(12);
-> -1.57267341 mysql>SELECT COT(0);
-> NULL
Calcule la somme de contrôle et retourne un entier 32 bits
non-signé. Le résultat est la valeur
NULL
si l'argument est
NULL
. L'argument attendu est une chaîne,
et sera traité comme une chaîne s'il n'est pas du bon
type.
mysql> SELECT CRC32('MySQL');
-> 3259397556
CRC32()
est disponible en MySQL 4.1.0.
Retourne l'argument X
, convertit de
radians en degrés.
mysql> SELECT DEGREES(PI());
-> 180.000000
Retourne la valeur de e
(la base des
logarithmes naturels) élevé à la puissance
X
.
mysql>SELECT EXP(2);
-> 7.389056 mysql>SELECT EXP(-2);
-> 0.135335
Retourne la valeur entière inférieure de
X
.
mysql>SELECT FLOOR(1.23);
-> 1 mysql>SELECT FLOOR(-1.23);
-> -2
Notez que la valeur retournée sera de type
BIGINT
!
Retourne le logarithme naturel de X
(népérien).
mysql>SELECT LN(2);
-> 0.693147 mysql>SELECT LN(-2);
-> NULL
Cette fonction a été ajoutée à MySQL à partir de la
version 4.0.3. C'est un synonyme de la fonction
LOG(X)
.
Appelée avec un seul paramètre, cette fonction retourne le
logarithme naturel (népérien) de X
.
mysql>SELECT LOG(2);
-> 0.693147 mysql>SELECT LOG(-2);
-> NULL
Appelée avec deux paramètres, cette fonction retourne le
logarithme naturel de X
pour une base
B
arbitraire :
mysql>SELECT LOG(2,65536);
-> 16.000000 mysql>SELECT LOG(1,100);
-> NULL
Cette base arbitraire a été ajoutée à MySQL à partir de
la version 4.0.3. LOG(B,X)
est
l'équivalent de LOG(X)/LOG(B)
.
Retourne le logarithme en base 2 de X
.
mysql>SELECT LOG2(65536);
-> 16.000000 mysql>SELECT LOG2(-100);
-> NULL
LOG2()
est utile pour trouver combien de
bits sont nécessaires pour stocker un nombre. Cette
fonction a été ajoutée à MySQL à partir de la version
4.0.3. Dans les versions antérieures, vous pouvez utiliser
LOG(X)/LOG(2)
en remplacement.
Retourne le logarithme en base 10 de X
.
mysql>SELECT LOG10(2);
-> 0.301030 mysql>SELECT LOG10(100);
-> 2.000000 mysql>SELECT LOG10(-100);
-> NULL
Modulo (équivalent de l'opérateur %
dans le langage C). Retourne le reste de la division de
N
par M
.
mysql>SELECT MOD(234, 10);
-> 4 mysql>SELECT 253 % 7;
-> 1 mysql>SELECT MOD(29,9);
-> 2
Cette fonction ne pose pas de problèmes avec les
BIGINT
.
Retourne la valeur de pi. Par défaut, 5 décimales sont retournées, mais MySQL utilise la double précision pour pi.
mysql>SELECT PI();
-> 3.141593 mysql>SELECT PI()+0.000000000000000000;
-> 3.141592653589793116
Retourne la valeur de X
élevée à la
puissance Y
:
mysql>SELECT POW(2,2);
-> 4.000000 mysql>SELECT POW(2,-2);
-> 0.250000
Retourne l'argument X
, converti de
degrés en radians.
mysql> SELECT RADIANS(90);
-> 1.570796
Retourne un nombre aléatoire à virgule flottante compris
dans l'intervalle 0
-
1.0
. Si l'argument entier
N
est spécifié, il est utilisé comme
initialisation du générateur de nombres aléatoires.
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
Vous ne pouvez pas utiliser une colonne de valeur
RAND()
dans une clause ORDER
BY
, parce que ORDER BY
va
évaluer la colonne plusieurs fois. Dans la version 3.23 de
MySQL, vous pouvez, tout de même, faire ceci :
mysql> SELECT * FROM tbl_name ORDER BY RAND();
Cette syntaxe est très pratique pour faire une sélection aléatoire de lignes :
mysql>SELECT * FROM table1, table2 WHERE a=b AND c<d
->ORDER BY RAND() LIMIT 1000;
Notez que la fonction RAND()
dans une
clause WHERE
sera réévaluée à chaque
fois que WHERE
sera exécuté.
RAND()
n'est pas un générateur parfait
de nombres aléatoires, mais reste une manière rapide de
produire des nombres aléatoires portables selon les
différentes plates-formes pour une même version de MySQL.
Retourne l'argument X
, arrondi à un
nombre à D
décimales. Avec deux
arguments, la valeur est arrondie avec D
décimales.
Si D
vaut 0
, le
résultat n'aura ni de partie décimale, ni de séparateur
de décimal.
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
Notez que le comportement de l'opérateur
ROUND()
, lorsque l'argument est
exactement entre deux entiers, dépend de la bibliothèque C
active. Certaines arrondissent toujours à l'entier pair le
plus proche, toujours vers le haut, toujours vers le bas, ou
toujours vers zéro. Si vous avez besoin d'un certain type
d'arrondissement, vous devez utiliser une fonction bien
définie comme TRUNCATE()
ou
FLOOR()
.
Retourne le signe de l'argument sous la forme
-1
, 0
, ou
1
, selon que X
est
négatif, zéro, ou positif.
mysql>SELECT SIGN(-32);
-> -1 mysql>SELECT SIGN(0);
-> 0 mysql>SELECT SIGN(234);
-> 1
Retourne le sinus de X
, où
X
est donné en radians.
mysql> SELECT SIN(PI());
-> 0.000000
Retourne la racine carrée de X
.
mysql>SELECT SQRT(4);
-> 2.000000 mysql>SELECT SQRT(20);
-> 4.472136
Retourne la tangente de X
, où
X
est donné en radians.
mysql> SELECT TAN(PI()+1);
-> 1.557408
Retourne l'argument X
, tronqué à
D
décimales. Si D
vaut 0
, le résultat n'aura ni
séparateur décimal, ni partie décimale.
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 de MySQL 3.23.51 tous les nombres sont arrondis vers zéro.
Notez que les nombres décimaux ne sont pas stockés exactement comme les nombres entiers , mais comme des valeurs doubles. Vous pouvez être dupés par le résultat suivant :
mysql> SELECT TRUNCATE(10.28*100,0);
-> 1027
Ce résultat est normal car 10.28 est actuellement stocké comme cela 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.