MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment LOG() fonctionne dans MariaDB

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'