Dans MariaDB, LOG()
est une fonction intégrée qui renvoie le logarithme népérien de son argument à une base donnée.
Il peut être appelé avec un ou deux arguments :
- Lorsqu'elle est appelée avec un argument, renvoie le logarithme naturel de l'argument.
- Lorsqu'il est appelé avec deux arguments, renvoie le logarithme du deuxième argument à la base spécifiée dans le premier argument.
Lorsqu'il est appelé avec un seul argument, LOG()
est l'inverse de EXP()
, et c'est la même chose que d'utiliser LN()
.
Syntaxe
La fonction peut être utilisée des deux manières suivantes :
LOG(X)
LOG(B,X)
Lors de l'utilisation de la première syntaxe, la fonction renvoie le logarithme naturel de X
.
Lors de l'utilisation de la deuxième syntaxe, la fonction renvoie le logarithme de X
à la base B
.
Exemple – Syntaxe à argument unique
Voici un exemple qui utilise la syntaxe à argument unique :
SELECT LOG(3);
Résultat :
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Voici ce que nous obtenons lorsque nous passons e :
SELECT LOG(2.718281828459045);
Résultat :
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Le nombre e , également connu sous le nom de nombre d'Euler, est une constante mathématique approximativement égale à 2,718281828459045… et ainsi de suite.
Exemple :syntaxe à deux arguments
Voici un exemple qui utilise la syntaxe à deux arguments :
SELECT LOG(10, 3);
Résultat :
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Voici la même valeur en utilisant différentes bases :
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
Résultat :
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Plages d'arguments
Si X
est inférieur ou égal à 0
, puis NULL
est renvoyé avec un avertissement.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
Résultat :
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Vérifions les avertissements :
SHOW WARNINGS;
Résultat :
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
De plus, la base doit être supérieure à 1
. Sinon, NULL
est renvoyé :
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
Résultat :
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Vérifiez les avertissements :
SHOW WARNINGS;
Résultat :
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Arguments non numériques
Voici un exemple de ce qui se passe lorsque nous fournissons des arguments non numériques :
SELECT LOG('Homer', 'Simpson');
Résultat :
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
Voyons l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Arguments nuls
LOG()
renvoie null
si un argument est null
:
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
Résultat :
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Arguments manquants
Appel de LOG()
avec le mauvais nombre d'arguments, ou sans aucun argument entraîne une erreur :
SELECT LOG();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Et :
SELECT LOG(10, 2, 3);
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'