MYSQL數(shù)字函數(shù)詳解及實(shí)戰(zhàn)記錄(數(shù)字函數(shù)大全,內(nèi)含示例)
MySQL提供了許多數(shù)字函數(shù),用于對數(shù)字進(jìn)行各種計(jì)算和處理。以下是一些常用的MySQL數(shù)字函數(shù)。
內(nèi)容有點(diǎn)多,建議收藏以備后續(xù)用到查閱參考。
一、SIGN 取數(shù)字的符號
MySQL SIGN()
函數(shù)返回指定的數(shù)字的符號。參數(shù)為正數(shù)、負(fù)數(shù)和零時分別返回 1
, -1
和 0
。
語法:
SIGN(number)
參數(shù)說明:
number
:必需的。 一個數(shù)字。
返回值:
- 返回值為
1
,-1
,0
和NULL
中的一個:- 如果
number
大于0
,SIGN()
函數(shù)將會返回1
。 - 如果
number
等于0
,SIGN()
函數(shù)將會返回0
。 - 如果
number
小于0
,SIGN()
函數(shù)將會返回-1
。 - 如果
number
為NULL
,SIGN()
函數(shù)將會返回NULL
。
- 如果
示例:
SELECT SIGN(123), -- 1 SIGN(123.123), -- 1 SIGN(-123), -- -1 SIGN(-123.123), -- -1 SIGN(0), -- 0 SIGN(NULL) -- NULL
二、ABS 取絕對值
MySQL ABS()
函數(shù)返回指定數(shù)字的絕對值。
語法:
ABS(number)
參數(shù)說明:
number
必需的。 一個用于計(jì)算絕對值的數(shù)字。
返回值:
- 返回?cái)?shù)字的絕對(正)值。
- 如果參數(shù)
number
為字符串,ABS()
將按照如下規(guī)則嘗試轉(zhuǎn)為數(shù)字:- 如果以數(shù)字開頭,則將開頭的數(shù)字部分轉(zhuǎn)為數(shù)字。
- 如果不能轉(zhuǎn)為數(shù)字,則按照
0
處理。
- 返回
NULL情況:number
為NULL。
示例:
SELECT ABS(100), -- 100 ABS(-100), -- 100 ABS('100'), -- 100 ABS('-100'), -- 100 ABS('-100A') -- 100 ABS('A100'), -- 0 ABS(NULL) -- null
三、COS 取余弦值
MySQL COS()
函數(shù)返回指定數(shù)值的余弦值。
語法:
COS(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算余弦值的數(shù)值。
返回值:
- 指定數(shù)值的余弦值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT COS(2.5), -- -0.8011436155469337 COS(0.2), -- 0.9800665778412416 COS(-0.5), -- 0.8775825618903728 COS(-0.2), -- 0.9800665778412416 COS(0), -- 1 COS(PI()), -- -1 COS(NULL) -- NULL
四、ACOS 取反余弦值
MySQL ACOS()
函數(shù)返回指定數(shù)值的反余弦值。
語法:
ACOS(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算反余弦值的數(shù)值。
返回值:
- 返回指定數(shù)值的反余弦值。
- 返回
NULL情況:
number
不在-1
到1
之間。number
為NULL。
示例:
SELECT ACOS(0.5), -- 1.0471975511965976 ACOS(0.2), -- 1.3694384060045657 ACOS(-0.5), -- 2.0943951023931957 ACOS(-0.2), -- 1.7721542475852274 ACOS(1), -- 0 ACOS(0), -- 1.5707963267948966 ACOS(-1), -- 3.141592653589793 ACOS(2), -- NULL ACOS(-2), -- NULL ACOS(NULL) -- NULL
五、SIN 取正弦值
MySQL SIN()
函數(shù)返回指定數(shù)值的正弦值。
語法:
SIN(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算正弦值的數(shù)值。
返回值:
- 指定數(shù)值的正弦值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT SIN(2.5), -- 0.5984721441039564 SIN(0.2), -- 0.19866933079506122 SIN(-0.5), -- -0.479425538604203 SIN(0), -- 0 SIN(PI()), -- 1.2246467991473532e-16 SIN(NULL) -- NULL
六、ASIN 取反正弦值
MySQL ASIN()
函數(shù)返回指定數(shù)值的反正弦值。
語法:
ASIN(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算反正弦值的數(shù)值。
返回值:
- 指定數(shù)值的反正弦值。
- 返回
NULL情況:
number
不在-1
到1
之間。number
為NULL。
示例:
SELECT ASIN(0.5), -- 0.5235987755982988 ASIN(-0.5), -- -0.5235987755982988 ASIN(1), -- 1.5707963267948966 ASIN(0), -- 0 ASIN(-1), -- -1.5707963267948966 ASIN(2), -- NULL ASIN(NULL) -- NULL
七、TAN 取正切值
MySQL TAN()
函數(shù)返回指定數(shù)值的正切值。
語法:
TAN(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算正切值的數(shù)值。
返回值:
- 指定數(shù)值的正切值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT TAN(2.5), -- -0.7470222972386602 TAN(0.2), -- 0.20271003550867248 TAN(-0.5), -- -0.5463024898437905 TAN(0), -- 0 TAN(PI()), -- -1.2246467991473532e-16 TAN(NULL) -- NULL
八、ATAN 取反正切值
MySQL ATAN()
函數(shù)返回指定數(shù)值的反正切值。
語法:
ATAN(number) ATAN(x, y)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算反正切值的數(shù)值。x, y
:必需的。 一個用于計(jì)算反正切值的兩個數(shù)值。x
和y
的符號用于確定結(jié)果的象限。
返回值:
- 指定數(shù)值的反正切值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT ATAN(2.5), -- 1.1902899496825317 ATAN(0.2), -- 0.19739555984988078 ATAN(-0.5), -- -0.46364760900080615 ATAN(-0.9, 2), -- -0.4228539261329407 ATAN(PI(), 2), -- 1.0038848218538872 ATAN(NULL) -- NULL
九、ATAN2 取反正切值
MySQL ATAN2()
函數(shù)返回指定數(shù)值的反正切值。
語法:
ATAN2(x, y)
參數(shù)說明:
x, y
:必需的。 一個用于計(jì)算反正切值的兩個數(shù)值。x
和y
的符號用于確定結(jié)果的象限。
返回值:
- 指定數(shù)值的反正切值。
- 返回
NULL情況:
任一參數(shù)為NULL。
示例:
SELECT ATAN2(2.5, 1), -- 1.1902899496825317 ATAN2(0.75, 1), -- 0.6435011087932844 ATAN2(-0.9, 2), -- -0.4228539261329407 ATAN2(PI(), 2), -- 1.0038848218538872 ATAN2(NULL) -- NULL
十、 COT 取余切值
MySQL COT()
函數(shù)返回指定數(shù)值的余切值。
語法:
COT(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算余切值的數(shù)值。
返回值:
- 指定數(shù)值的余切值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT COT(2.5), -- -1.3386481283041516 COT(0.2), -- 4.933154875586894 COT(-0.5), -- -1.830487721712452 COT(PI()), -- -8.165619676597685e15 COT(NULL) -- NULL
十一、CEIL 向上取整
MySQL CEIL()
函數(shù)返回大于或等于指定數(shù)字的最小整數(shù)值。CEIL()
函數(shù)等同于 CEILING() 函數(shù)。
語法:
CEIL(number)
參數(shù)說明:
number
:必需的。 一個數(shù)字。
返回值:
- 大于或等于指定數(shù)字的最小整數(shù)值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT CEIL(123.123), -- 124 CEIL(123), -- 123 CEIL(-123.123), -- -123 CEIL(-123), -- -123 CEIL(-100), -- -100 CEIL(NULL) -- NULL
十二、CEILING 向上取整
MySQL CEILING() 函數(shù)返回大于或等于指定數(shù)字的最小整數(shù)值。CEILING() 函數(shù)等同于 CEIL() 函數(shù)。
語法:
CEILING(number)
參數(shù)說明:
number
:必需的。 一個數(shù)字。
返回值:
- 大于或等于指定數(shù)字的最小整數(shù)值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT CEILING(123.789), -- 124 CEILING(123), -- 123 CEILING(-123.123), -- -123 CEILING(-123), -- -123 CEILING(NULL)-- NULL
十三、FLOOR 向下取整
MySQL FLOOR()
函數(shù)返回小于或等于指定數(shù)字的最大整數(shù)值。
語法:
FLOOR(number)
參數(shù)說明:
number
:必需的。 一個數(shù)字。
返回值:
- 小于或等于指定數(shù)字的最大整數(shù)值。
- 返回
NULL情況:number
為NULL。
示例:
SELECT FLOOR(123.123), -- 123 FLOOR(123), -- 123 FLOOR(-123.123), -- -124 FLOOR(-123), -- -123 FLOOR(NULL) -- NULL
十四、ROUND 取四舍五入
MySQL ROUND()
函數(shù)將數(shù)字四舍五入到指定的小數(shù)位數(shù)。
語法:
ROUND(x, d)
參數(shù)說明:
x
:必需的。 被處理的數(shù)字。d
:必需的。 需要保留的小數(shù)位數(shù)。
返回值:
- 將數(shù)字四舍五入到指定的小數(shù)位數(shù)。
- 如果
d
大于等于x
的小數(shù)位數(shù),則返回原數(shù)字。 - 如果
d
小于x
的小數(shù)位數(shù),則將x
的小數(shù)位四舍五入到d
位后返回。 - 如果
d
為負(fù)數(shù),ROUND()
函數(shù)將會從小數(shù)點(diǎn)開始向整數(shù)部分的d
位數(shù)字替換為0
。 - 返回
NULL情況:任
意一個參數(shù)為NULL。
示例:
SELECT ROUND(123.179, 1), -- 123.2 ROUND(123.179, 4), -- 123.179 ROUND(123.179, 0), -- 123 ROUND(123.179, -2), -- 100 ROUND(123.179, NULL) -- NULL
十五、TRUNCATE 截取小數(shù)位
MySQL TRUNCATE()
函數(shù)截取數(shù)字為指定的小數(shù)位數(shù)。 TRUNCATE()
函數(shù)只是按指定的位數(shù)截?cái)嘈?shù),而不進(jìn)行四舍五入。
語法:
TRUNCATE(x, d)
參數(shù)說明:
x
:必需的。 被處理的數(shù)字。d
:必需的。 需要保留的小數(shù)位數(shù)。
返回值:
- 保留了指定小數(shù)位的數(shù)字。
- 如果
d
大于等于x
的小數(shù)位數(shù),則返回原數(shù)字。 - 如果
d
小于x
的小數(shù)位數(shù),則將x
的小數(shù)位數(shù)截?cái)酁?nbsp;d
位后返回。 - 如果
d
為負(fù)數(shù),TRUNCATE()
函數(shù)將會從小數(shù)點(diǎn)開始向整數(shù)部分的d
位數(shù)字替換為0
。 - 返回
NULL情況:
任意一個參數(shù)為NULL。
示例:
SELECT TRUNCATE(123.179, 1), -- 123.1 TRUNCATE(123.179, 4), -- 123.179 TRUNCATE(123.179, 0), -- 123 TRUNCATE(123.179, -2), -- 100 TRUNCATE(123.179, NULL) -- NULL
十六、CONV 進(jìn)制轉(zhuǎn)為另一個進(jìn)制
MySQL CONV()
函數(shù)將數(shù)字從一個進(jìn)制轉(zhuǎn)為另一個進(jìn)制,比如從 10 進(jìn)制轉(zhuǎn)為 2 進(jìn)制。
語法:
CONV(num, from_base, to_base)
參數(shù)說明:
num
:必需的。一個數(shù)字。from_base
:必需的。 數(shù)字當(dāng)前使用的進(jìn)制。從 2 到 36。to_base
:必需的。 將數(shù)字轉(zhuǎn)為的進(jìn)制。從 2 到 36。
返回值:
- 將數(shù)字從一個進(jìn)制轉(zhuǎn)為另一個進(jìn)制。
- 返回
NULL情況:
任意一個參數(shù)為NULL。
示例:
SELECT CONV('A', 16, 10), -- 10 CONV('C', 16, 10), -- 12 CONV('E', 16, 10), -- 14 CONV('F', 16, NULL) -- NULL
十七、DIV 取除法值
在 MySQL 中, DIV
操作符計(jì)算兩個整數(shù)的除法并返回一個整數(shù)結(jié)果。
語法:
x DIV y
參數(shù)說明:
x
:必需的。 被除數(shù)。y
:必需的。 除數(shù)。
返回值:
x DIV y
返回x
除以y
的結(jié)果的整數(shù)部分。- 若參數(shù) x 或者 y 不是整數(shù),則會先將他們轉(zhuǎn)為 DECIMAL 類型后再計(jì)算。
示例:
SELECT 10 DIV 3, -- 3 10 / 3, -- 3.3333 FLOOR(10/3), -- 3 9.8 DIV 2.6, -- 3 9.8 / 2.6, -- 3.76923 FLOOR(9.8/2.6) -- 3
十八、EXP e
的指定數(shù)值的次方
MySQL EXP()
函數(shù)返回自然常數(shù) e
的指定數(shù)值的次方,例如 EXP(2)
返回結(jié)果是 e2
。
語法:
EXP(number)
參數(shù)說明:
number
:必需的。 次方值。
返回值:
- 自然常數(shù)
e
的指定數(shù)值的次方。 - 返回
NULL情況:number
為NULL。
示例:
SELECT EXP(0), -- 1 EXP(2), -- 7.38905609893065 EXP(-1), -- 0.36787944117144233 EXP(NULL) -- NULL
十九、GREATEST 取列表的最大值
MySQL GREATEST()
函數(shù)返回參數(shù)列表中的最大值。
語法:
GREATEST(param1, param2, ..., paramN)
參數(shù)說明:
param1, param2, ..., paramN:
必需的。用于比較的參數(shù)列表。所有的參數(shù)都參與比較。參數(shù)可以是任意的數(shù)據(jù)類型,或者表達(dá)式。
返回值:
- 參數(shù)列表中的最大值。
- 返回
NULL情況:
任意一個參數(shù)為NULL。
示例:
SELECT GREATEST(2, 1, 5), -- 5 GREATEST(2, 1, 5, '0'), -- 5 GREATEST('a', 'b', 'c'), -- c GREATEST('Hello', 'World'), -- World GREATEST('a', 'b', NULL) -- NULL
二十、LEAST 取列表的最小值
MySQL LEAST()
函數(shù)返回參數(shù)列表中的最小值。
語法:
LEAST(param1, param2, ..., paramN)
參數(shù)說明:
param1, param2, ..., paramN
:必需的。用于比較的參數(shù)列表。所有的參數(shù)都參與比較。參數(shù)可以是任意的數(shù)據(jù)類型,或者表達(dá)式。
返回值:
- 參數(shù)列表中的最小值。
- 返回
NULL情況:
任意一個參數(shù)為NULL。
示例:
SELECT LEAST(2, 1, 5), -- 1 LEAST(2, 1, 5, '0'), -- 0 LEAST('a', 'b', 'c'), -- a LEAST('Hello', 'World'), -- Hello LEAST('a', 'b', NULL) -- NULL
二十一、LN 取指定數(shù)字的自然對數(shù)
MySQL LN()
函數(shù)返回指定數(shù)字的自然對數(shù)。
語法:
LN(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算自然對數(shù)的數(shù)字。該值必須大于0
。
返回值:
- 指定數(shù)字的自然對數(shù)。
- 返回
NULL情況:
number
小于或等于0。
number
為NULL。
示例:
SELECT LN(1), -- 0 LN(2), -- 0.6931471805599453 LN(0), -- NULL LN(-1), -- NULL LN(NULL) -- NULL
二十二、LOG 指定數(shù)字的指定底數(shù)的對數(shù)
MySQL LOG()
函數(shù)返回指定數(shù)字的指定底數(shù)的對數(shù)。
語法:
LOG(number) LOG(base, number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算對數(shù)的數(shù)字。該值必須大于0
。base
:可選參數(shù)。 底數(shù)。該值必須大于1
。
返回值:
- 指定數(shù)字的指定底數(shù)的對數(shù)。
- 返回
NULL情況:
number
小于或等于0。
base
小于或等于1。
- 任意一個參數(shù)為
NULL。
示例:
SELECT LOG(1), -- 0 LOG(EXP(1), 2), -- 0.6931471805599453 LOG(10, 100), -- 2 LOG(-1), -- NULL LOG(1, 10), -- NULL LOG(NULL) -- NULL
二十三、LOG10 指定數(shù)字的以 10 為底的對數(shù)
MySQL LOG10()
函數(shù)返回指定數(shù)字的以 10 為底的對數(shù)。等同于 LOG(10, number) 函數(shù)。
二十四、LOG2 指定數(shù)字的以 2 為底的對數(shù)
MySQL LOG2()
函數(shù)返回指定數(shù)字的以 2 為底的對數(shù)。等同于 LOG(2, number) 函數(shù)。
二十五、MOD 取兩數(shù)的余數(shù)
MySQL MOD()
函數(shù)返回一個數(shù)字除以另一個數(shù)字的余數(shù)。
語法:
MOD(number1, number2) number1 MOD number2 number1 % number2
參數(shù)說明:
number1
:必需的。 被除數(shù)。number2
:必需的。 除數(shù)。
返回值:
- 一個數(shù)字除以另一個數(shù)字的余數(shù)。
- 返回
NULL情況:
number2
等于0。
number1
為NULL。
示例:
SELECT MOD(100, 10), -- 0 100 MOD 7, -- 2 100 % 7, -- 2 100 % 10, -- 0 MOD(0, 1), -- 0 MOD(1, 0), -- NULL MOD(NULL, 1) -- NULL
二十六、PI 值
MySQL PI()
函數(shù)返回 6 位小數(shù)位的 PI 值。
語法:
PI()
示例:
SELECT PI(), -- 3.141593 PI() + 0.000000, -- 3.141593 PI() * 1000000000000 -- 3141592653589.793000
二十七、POW 計(jì)算 x 的 y 次冪
MySQL POW(x, y)
函數(shù)計(jì)算 x
的 y
次冪并返回結(jié)果,即: y個x相乘。
語法:
POW(x, y)
參數(shù)說明:
x
:必需的。 次冪計(jì)算中的基數(shù)。y
:必需的。 次冪計(jì)算中的指數(shù)。
返回值:
x
的y
次冪并返回結(jié)果。- 返回
NULL情況
:任意一個參數(shù)為NULL。
示例:
SELECT POW(2, 0), -- 1 POW(2.5, 2), -- 6.25 POW(2, -4), -- 0.0625 POW(2, NULL) -- NULL
二十八、POWER 計(jì)算 x
的 y
次冪
MySQL POWER(x, y) 函數(shù)計(jì)算 x 的 y 次冪并返回結(jié)果,即: xy。 POWER() 函數(shù)等同于 POW() 函數(shù)。
二十九、SQRT 取平方根
MySQL SQRT()
函數(shù)返回一個數(shù)字的平方根。
語法:
SQRT(number)
參數(shù)說明:
number
:必需的。 一個用于計(jì)算對數(shù)的數(shù)字。該值必須大于0
。
返回值:
- 參數(shù)
number
的平方根。 - 返回
NULL情況:number
是負(fù)數(shù)或者NULL。
示例:
SELECT SQRT(16), -- 4 SQRT(101), -- 10.04987562112089 SQRT(-100), -- NULL SQRT(NULL) -- NULL
三十、DEGREES 弧度值轉(zhuǎn)為度數(shù)
MySQL DEGREES()
函數(shù)將弧度值轉(zhuǎn)為度數(shù)并返回。
語法:
DEGREES(number)
參數(shù)說明:
number
:必需的。 一個表示弧度的數(shù)字。
返回值:
- 指定的弧度值對應(yīng)的度數(shù)。
- 返回
NULL情況:number
為NULL。
示例:
SELECT DEGREES(0.75), -- 42.97183463481174 DEGREES(-0.75), -- -42.97183463481174 DEGREES(0), -- 0 DEGREES(PI() * 2), -- 360 DEGREES(PI() * -1), -- -180 DEGREES(NULL) -- NULL
三十一、RADIANS 度數(shù)值轉(zhuǎn)為弧度值
MySQL RADIANS()
函數(shù)將度數(shù)值轉(zhuǎn)為弧度值并返回。
語法:
RADIANS(number)
參數(shù)說明:
number
:必需的。 一個表示度數(shù)的數(shù)字。
返回值:
- 指定的弧度值對應(yīng)的度數(shù)。
- 返回
NULL情況:number
為NULL。
示例:
SELECT RADIANS(0), -- 0 RADIANS(360), -- 6.283185307179586 RADIANS(-360), -- -6.283185307179586 RADIANS(NULL) -- NULL
三十二、RAND 取0到1的隨機(jī)數(shù)
MySQL RAND()
函數(shù)返回一個 0 (包含) 和 1 (不包含) 之間的隨機(jī)數(shù)。
語法:
RAND() RAND(seed)
參數(shù)說明:
seed
:可選的。產(chǎn)生隨機(jī)數(shù)的種子。如果提供了seed
,RAND(seed)
函數(shù)將產(chǎn)生一個可重復(fù)的隨機(jī)數(shù)序列。
返回值:
- 一個 0 (包含) 和 1 (不包含) 之間的隨機(jī)數(shù)。
- 若提供了參數(shù)
seed
,MySQLRAND(seed)
函數(shù)將產(chǎn)生一個可重復(fù)的隨機(jī)數(shù)序列。 - 若想返回其他區(qū)間(比如
m
和n
)的隨機(jī)數(shù),請使用以下公式:m
和n
之間的隨機(jī)數(shù):RAND() * (n - m) + m
m
和n
之間的隨機(jī)整數(shù):FLOOR(RAND() * (n - m + 1) + m)
示例:
SELECT RAND(), -- 0.9892005063492809 RAND(), -- 0.2601393091121123 RAND(), -- 0.3330950572463638 RAND() -- 0.8850573896291268
總結(jié)
到此這篇關(guān)于MYSQL數(shù)字函數(shù)詳解及實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)MYSQL數(shù)字函數(shù)詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL主從復(fù)制遇到1590報(bào)錯解決分析
這篇文章通過一個主從復(fù)制過程中?1590?的錯誤,說明了?MySQL?8.0?在創(chuàng)建用戶授權(quán)過程中的注意事項(xiàng),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08windows上的mysql服務(wù)突然消失提示10061 Unkonwn error問題及解決方案
windows10 系統(tǒng),今天早晨系統(tǒng)自己更新了下,也沒啥問題,突然發(fā)現(xiàn)電腦上安裝的mysql 服務(wù)沒了,經(jīng)過一系列原因分析終于找到解決方案,今天小編給大家分享mysql服務(wù)突然消失:10061 Unkonwn error解決方法,一起看看吧2023-07-07Windows Server2019安裝MySQL5.7.25的方法
這篇文章主要介紹了Windows Server2019安裝MySQL5.7.25,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09