Di MariaDB, LOG()
adalah fungsi bawaan yang mengembalikan logaritma natural dari argumennya ke basis tertentu.
Itu bisa dipanggil dengan satu atau dua argumen:
- Saat dipanggil dengan satu argumen, menampilkan logaritma natural dari argumen tersebut.
- Saat dipanggil dengan dua argumen, mengembalikan logaritma argumen kedua ke basis yang ditentukan dalam argumen pertama.
Saat dipanggil dengan satu argumen, LOG()
adalah kebalikan dari EXP()
, dan itu sama dengan menggunakan LN()
.
Sintaks
Fungsi tersebut dapat digunakan dengan dua cara berikut:
LOG(X)
LOG(B,X)
Saat menggunakan sintaks pertama, fungsi mengembalikan logaritma natural X
.
Saat menggunakan sintaks kedua, fungsi mengembalikan logaritma X
ke dasar B
.
Contoh – Sintaks Argumen Tunggal
Berikut adalah contoh yang menggunakan sintaks argumen tunggal:
SELECT LOG(3);
Hasil:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Inilah yang kami dapatkan ketika kami melewati e :
SELECT LOG(2.718281828459045);
Hasil:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Nomor e , juga dikenal sebagai bilangan Euler, adalah konstanta matematika yang kira-kira sama dengan 2,718281828459045… dan seterusnya.
Contoh – Sintaks Dua Argumen
Berikut adalah contoh yang menggunakan sintaks dua argumen:
SELECT LOG(10, 3);
Hasil:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Berikut nilai yang sama menggunakan basis yang berbeda:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
Hasil:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Rentang Argumen
Jika X
kurang dari atau sama dengan 0
, lalu NULL
dikembalikan dengan peringatan.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
Hasil:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Mari kita periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Juga, basis harus lebih besar dari 1
. Jika tidak, NULL
dikembalikan:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
Hasil:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Argumen Non-Numerik
Berikut adalah contoh yang terjadi saat kami memberikan argumen non-numerik:
SELECT LOG('Homer', 'Simpson');
Hasil:
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
Mari kita lihat peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Argumen Null
LOG()
mengembalikan null
jika ada argumen null
:
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
Hasil:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Argumen Tidak Ada
Memanggil LOG()
dengan jumlah argumen yang salah, atau tanpa argumen apa pun menghasilkan kesalahan:
SELECT LOG();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Dan:
SELECT LOG(10, 2, 3);
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'