???個(gè)人主頁:danci_
???系列專欄:《MYSQL應(yīng)用》
?????制定明確可量化的目標(biāo),堅(jiān)持默默的做事。
MYSQL數(shù)字函數(shù):不可不知的數(shù)據(jù)處理利器
? ? ? ?
? ? ? ?在軟件開發(fā)中,MySQL數(shù)字函數(shù)扮演著至關(guān)重要的角色,它們能夠幫助我們快速地對(duì)數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算、轉(zhuǎn)換和處理。下面,我將介紹幾個(gè)非常常用的MySQL數(shù)字函數(shù),并舉例說明它們?cè)谲浖_發(fā)中的巧妙運(yùn)用場(chǎng)景,同時(shí)探討這些函數(shù)的迭代性、優(yōu)缺點(diǎn)以及使用時(shí)需要注意的問題。
? ? ? ??
一、使用數(shù)字函數(shù)的優(yōu)缺點(diǎn)
? ? ? ??
?優(yōu)點(diǎn):
? ? ? ??
1. 簡(jiǎn)化計(jì)算過程:數(shù)字函數(shù)能夠直接對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算,無需在應(yīng)用程序中進(jìn)行復(fù)雜的計(jì)算。 2. 提高數(shù)據(jù)準(zhǔn)確性:數(shù)字函數(shù)通常經(jīng)過優(yōu)化和測(cè)試,能夠確保計(jì)算結(jié)果的準(zhǔn)確性。 3. 提高性能:相比于在應(yīng)用程序中進(jìn)行計(jì)算,直接在數(shù)據(jù)庫中使用數(shù)字函數(shù)通常能夠更快地得到結(jié)果。 |
? ? ? ??
?缺點(diǎn):
? ? ? ? ? ?
1. 學(xué)習(xí)成本:對(duì)于初學(xué)者來說,可能需要花費(fèi)一定的時(shí)間來學(xué)習(xí)和掌握這些函數(shù)的用法。 2. 靈活性受限:數(shù)字函數(shù)的功能相對(duì)固定,可能無法滿足一些復(fù)雜的計(jì)算需求。在這種情況下,可能需要結(jié)合其他SQL語句或應(yīng)用程序代碼來實(shí)現(xiàn)。 |
? ? ? ??
二、使用數(shù)字函數(shù)時(shí)需要注意
? ? ? ??
1. 數(shù)據(jù)類型:確保傳遞給數(shù)字函數(shù)的參數(shù)是正確的數(shù)據(jù)類型,否則可能會(huì)導(dǎo)致計(jì)算錯(cuò)誤或異常。 2. 空值處理:當(dāng)數(shù)據(jù)中存在NULL值時(shí),需要注意數(shù)字函數(shù)對(duì)NULL值的處理方式。有些函數(shù)可能返回NULL作為結(jié)果,而有些函數(shù)則可能忽略NULL值進(jìn)行計(jì)算。 3. 性能優(yōu)化:雖然數(shù)字函數(shù)通常能夠提高性能,但在某些情況下,過度使用或不當(dāng)使用這些函數(shù)可能會(huì)導(dǎo)致性能下降。因此,在使用數(shù)字函數(shù)時(shí),需要注意其對(duì)性能的影響,并進(jìn)行適當(dāng)?shù)膬?yōu)化。 4. 測(cè)試與驗(yàn)證:在將數(shù)字函數(shù)應(yīng)用于實(shí)際業(yè)務(wù)場(chǎng)景之前,需要進(jìn)行充分的測(cè)試和驗(yàn)證,以確保其正確性和可靠性。 |
? ? ? ??
? ? ? ??MySQL的數(shù)字函數(shù)在軟件開發(fā)中具有重要的應(yīng)用價(jià)值。通過巧妙運(yùn)用這些函數(shù),我們可以更加高效地處理數(shù)據(jù)、簡(jiǎn)化計(jì)算過程并提高數(shù)據(jù)準(zhǔn)確性。同時(shí),在使用這些函數(shù)時(shí),我們也需要注意其數(shù)據(jù)類型、空值處理、性能優(yōu)化以及測(cè)試驗(yàn)證等方面的問題,以確保其正確性和可靠性。
? ? ? ??
三、數(shù)字函數(shù)說明
? ? ? ??
3.1、SIGN 取數(shù)字的符號(hào)
MySQL?SIGN()
?函數(shù)返回指定的數(shù)字的符號(hào)。參數(shù)為正數(shù)、負(fù)數(shù)和零時(shí)分別返回?1
,?-1
?和?0
。
語法:
SIGN(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)數(shù)字。
返回值:
-
?返回值為?
1
,?-1
,0
?和?NULL
?中的一個(gè):- 如果?
number
?大于?0
,SIGN()
?函數(shù)將會(huì)返回?1
。 - 如果?
number
?等于?0
,SIGN()
?函數(shù)將會(huì)返回?0
。 - 如果?
number
?小于?0
,SIGN()
?函數(shù)將會(huì)返回?-1
。 - 如果?
number
?為?NULL
,SIGN()
?函數(shù)將會(huì)返回?NULL
。
- 如果?
示例:文章來源:http://www.zghlxwxcb.cn/news/detail-846123.html
SELECT
SIGN(123), -- 1
SIGN(123.123), -- 1
SIGN(-123), -- -1
SIGN(-123.123), -- -1
SIGN(0), -- 0
SIGN(NULL) -- NULL
3.2、ABS 取絕對(duì)值
MySQL?ABS()
?函數(shù)返回指定數(shù)字的絕對(duì)值。
語法:
ABS(number)
參數(shù)說明:
-
number
必需的。 一個(gè)用于計(jì)算絕對(duì)值的數(shù)字。
返回值:
- 返回?cái)?shù)字的絕對(duì)(正)值。
- 如果參數(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
3.3、COS 取余弦值
MySQL?COS()
?函數(shù)返回指定數(shù)值的余弦值。
語法:
COS(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.4、ACOS 取反余弦值
MySQL?ACOS()
?函數(shù)返回指定數(shù)值的反余弦值。
語法:
ACOS(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.5、SIN 取正弦值
MySQL?SIN()
?函數(shù)返回指定數(shù)值的正弦值。
語法:
SIN(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.6、ASIN 取反正弦值
MySQL?ASIN()
?函數(shù)返回指定數(shù)值的反正弦值。
語法:
ASIN(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.7、TAN 取正切值
MySQL?TAN()
?函數(shù)返回指定數(shù)值的正切值。
語法:
TAN(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.8、ATAN 取反正切值
MySQL?ATAN()
?函數(shù)返回指定數(shù)值的反正切值。
語法:
ATAN(number)
ATAN(x, y)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(jì)算反正切值的數(shù)值。 -
x, y
:必需的。 一個(gè)用于計(jì)算反正切值的兩個(gè)數(shù)值。x
?和?y
?的符號(hào)用于確定結(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
3.9、ATAN2 取反正切值
MySQL?ATAN2()
?函數(shù)返回指定數(shù)值的反正切值。
語法:
ATAN2(x, y)
參數(shù)說明:
-
x, y
:必需的。 一個(gè)用于計(jì)算反正切值的兩個(gè)數(shù)值。x
?和?y
?的符號(hào)用于確定結(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
3.10、?COT 取余切值
MySQL?COT()
?函數(shù)返回指定數(shù)值的余切值。
語法:
COT(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(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
3.11、CEIL 向上取整
MySQL?CEIL()
?函數(shù)返回大于或等于指定數(shù)字的最小整數(shù)值。CEIL()
?函數(shù)等同于 CEILING() 函數(shù)。
語法:
CEIL(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)數(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
3.12、CEILING 向上取整
MySQL CEILING() 函數(shù)返回大于或等于指定數(shù)字的最小整數(shù)值。CEILING() 函數(shù)等同于 CEIL() 函數(shù)。
語法:
CEILING(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)數(shù)字。
返回值:
- 大于或等于指定數(shù)字的最小整數(shù)值。
- 返回?
NULL情況:number
?為?NULL。
示例:
SELECT
CEILING(123.789), -- 124
CEILING(123), -- 123
CEILING(-123.123), -- -123
CEILING(-123), -- -123
CEILING(NULL)-- NULL
3.13、FLOOR 向下取整
MySQL?FLOOR()
?函數(shù)返回小于或等于指定數(shù)字的最大整數(shù)值。
語法:
FLOOR(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)數(shù)字。
返回值:
- 小于或等于指定數(shù)字的最大整數(shù)值。
- 返回?
NULL情況:number
?為?NULL。
示例:
SELECT
FLOOR(123.123), -- 123
FLOOR(123), -- 123
FLOOR(-123.123), -- -124
FLOOR(-123), -- -123
FLOOR(NULL) -- NULL
3.14、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ù)將會(huì)從小數(shù)點(diǎn)開始向整數(shù)部分的?d
?位數(shù)字替換為?0
。 - 返回?
NULL情況:任
意一個(gè)參數(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
3.15、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)酁?d
?位后返回。 - 如果?
d
?為負(fù)數(shù),TRUNCATE()
?函數(shù)將會(huì)從小數(shù)點(diǎn)開始向整數(shù)部分的?d
?位數(shù)字替換為?0
。 - 返回?
NULL情況:
任意一個(gè)參數(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
3.16、CONV?進(jìn)制轉(zhuǎn)為另一個(gè)進(jìn)制
MySQL?CONV()
?函數(shù)將數(shù)字從一個(gè)進(jìn)制轉(zhuǎn)為另一個(gè)進(jìn)制,比如從 10 進(jìn)制轉(zhuǎn)為 2 進(jìn)制。
語法:
CONV(num, from_base, to_base)
參數(shù)說明:
-
num
:必需的。一個(gè)數(shù)字。 -
from_base
:必需的。 數(shù)字當(dāng)前使用的進(jìn)制。從 2 到 36。 -
to_base
:必需的。 將數(shù)字轉(zhuǎn)為的進(jìn)制。從 2 到 36。
返回值:
- 將數(shù)字從一個(gè)進(jìn)制轉(zhuǎn)為另一個(gè)進(jìn)制。
- 返回?
NULL情況:
任意一個(gè)參數(shù)為?NULL。
示例:
SELECT
CONV('A', 16, 10), -- 10
CONV('C', 16, 10), -- 12
CONV('E', 16, 10), -- 14
CONV('F', 16, NULL) -- NULL
3.17、DIV 取除法值
在 MySQL 中,?DIV
?操作符計(jì)算兩個(gè)整數(shù)的除法并返回一個(gè)整數(shù)結(jié)果。
語法:
x DIV y
參數(shù)說明:
-
x
:必需的。 被除數(shù)。 -
y
:必需的。 除數(shù)。
返回值:
-
x DIV y
?返回?x
?除以?y
?的結(jié)果的整數(shù)部分。 - 若參數(shù) x 或者 y 不是整數(shù),則會(huì)先將他們轉(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
3.18、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
3.19、GREATEST 取列表的最大值
MySQL?GREATEST()
?函數(shù)返回參數(shù)列表中的最大值。
語法:
GREATEST(param1, param2, ..., paramN)
參數(shù)說明:
-
param1, param2, ..., paramN:
必需的。用于比較的參數(shù)列表。所有的參數(shù)都參與比較。參數(shù)可以是任意的數(shù)據(jù)類型,或者表達(dá)式。
返回值:
- 參數(shù)列表中的最大值。
- 返回?
NULL情況:
任意一個(gè)參數(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
3.20、LEAST 取列表的最小值
MySQL?LEAST()
?函數(shù)返回參數(shù)列表中的最小值。
語法:
LEAST(param1, param2, ..., paramN)
參數(shù)說明:
-
param1, param2, ..., paramN
:必需的。用于比較的參數(shù)列表。所有的參數(shù)都參與比較。參數(shù)可以是任意的數(shù)據(jù)類型,或者表達(dá)式。
返回值:
- 參數(shù)列表中的最小值。
- 返回?
NULL情況:
任意一個(gè)參數(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
3.21、LN 取指定數(shù)字的自然對(duì)數(shù)
MySQL?LN()
?函數(shù)返回指定數(shù)字的自然對(duì)數(shù)。
語法:
LN(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(jì)算自然對(duì)數(shù)的數(shù)字。該值必須大于?0
。
返回值:
- 指定數(shù)字的自然對(duì)數(shù)。
- 返回?
NULL情況:
-
number
?小于或等于?0。
-
number
?為?NULL。
-
示例:
SELECT
LN(1), -- 0
LN(2), -- 0.6931471805599453
LN(0), -- NULL
LN(-1), -- NULL
LN(NULL) -- NULL
3.22、LOG?指定數(shù)字的指定底數(shù)的對(duì)數(shù)
MySQL?LOG()
?函數(shù)返回指定數(shù)字的指定底數(shù)的對(duì)數(shù)。
語法:
LOG(number)
LOG(base, number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(jì)算對(duì)數(shù)的數(shù)字。該值必須大于?0
。 -
base
:可選參數(shù)。 底數(shù)。該值必須大于?1
。
返回值:
- 指定數(shù)字的指定底數(shù)的對(duì)數(shù)。
- 返回?
NULL情況:
-
number
?小于或等于?0。
-
base
?小于或等于?1。
- 任意一個(gè)參數(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
3.23、LOG10 指定數(shù)字的以 10 為底的對(duì)數(shù)
MySQL?LOG10()
?函數(shù)返回指定數(shù)字的以 10 為底的對(duì)數(shù)。等同于 LOG(10, number) 函數(shù)。
3.24、LOG2?指定數(shù)字的以 2?為底的對(duì)數(shù)
MySQL?LOG2()
?函數(shù)返回指定數(shù)字的以 2 為底的對(duì)數(shù)。等同于 LOG(2, number) 函數(shù)。
3.25、MOD 取兩數(shù)的余數(shù)
MySQL?MOD()
?函數(shù)返回一個(gè)數(shù)字除以另一個(gè)數(shù)字的余數(shù)。
語法:
MOD(number1, number2)
number1 MOD number2
number1 % number2
參數(shù)說明:
-
number1
:必需的。 被除數(shù)。 -
number2
:必需的。 除數(shù)。
返回值:
- 一個(gè)數(shù)字除以另一個(gè)數(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
3.26、PI 值
MySQL?PI()
?函數(shù)返回 6 位小數(shù)位的 PI 值。
語法:
PI()
示例:
SELECT
PI(), -- 3.141593
PI() + 0.000000, -- 3.141593
PI() * 1000000000000 -- 3141592653589.793000
3.27、POW?計(jì)算?x?的?y?次冪
MySQL?POW(x, y)
?函數(shù)計(jì)算?x
?的?y
?次冪并返回結(jié)果,即: y個(gè)x相乘。
語法:
POW(x, y)
參數(shù)說明:
-
x
:必需的。 次冪計(jì)算中的基數(shù)。 -
y
:必需的。 次冪計(jì)算中的指數(shù)。
返回值:
-
x
?的?y
?次冪并返回結(jié)果。 - 返回?
NULL情況
:任意一個(gè)參數(shù)為?NULL。
示例:
SELECT
POW(2, 0), -- 1
POW(2.5, 2), -- 6.25
POW(2, -4), -- 0.0625
POW(2, NULL) -- NULL
3.28、POWER?計(jì)算?x?的?y?次冪
MySQL POWER(x, y) 函數(shù)計(jì)算 x 的 y 次冪并返回結(jié)果,即: xy。 POWER() 函數(shù)等同于 POW() 函數(shù)。
3.29、SQRT 取平方根
MySQL?SQRT()
?函數(shù)返回一個(gè)數(shù)字的平方根。
語法:
SQRT(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)用于計(jì)算對(duì)數(shù)的數(shù)字。該值必須大于?0
。
返回值:
- 參數(shù)?
number
?的平方根。 - 返回?
NULL情況:number
?是負(fù)數(shù)或者?NULL。
示例:
SELECT
SQRT(16), -- 4
SQRT(101), -- 10.04987562112089
SQRT(-100), -- NULL
SQRT(NULL) -- NULL
3.30、DEGREES 弧度值轉(zhuǎn)為度數(shù)
MySQL?DEGREES()
?函數(shù)將弧度值轉(zhuǎn)為度數(shù)并返回。
語法:
DEGREES(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)表示弧度的數(shù)字。
返回值:
- 指定的弧度值對(duì)應(yīng)的度數(shù)。
- 返回?
NULL情況:number
?為?NULL。
示例:
SELECT
RADIANS(0), -- 0
RADIANS(360), -- 6.283185307179586
RADIANS(-360), -- -6.283185307179586
RADIANS(NULL) -- 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
3.31、RADIANS?度數(shù)值轉(zhuǎn)為弧度值
MySQL?RADIANS()
?函數(shù)將度數(shù)值轉(zhuǎn)為弧度值并返回。
語法:
RADIANS(number)
參數(shù)說明:
-
number
:必需的。 一個(gè)表示度數(shù)的數(shù)字。
返回值:
- 指定的弧度值對(duì)應(yīng)的度數(shù)。
- 返回?
NULL情況:number
?為?NULL。
示例:
3.32、RAND 取0到1的隨機(jī)數(shù)
MySQL?RAND()
?函數(shù)返回一個(gè) 0 (包含) 和 1 (不包含) 之間的隨機(jī)數(shù)。
語法:
RAND()
RAND(seed)
參數(shù)說明:
-
seed
:可選的。產(chǎn)生隨機(jī)數(shù)的種子。如果提供了?seed
,RAND(seed)
?函數(shù)將產(chǎn)生一個(gè)可重復(fù)的隨機(jī)數(shù)序列。
返回值:
- 一個(gè) 0 (包含) 和 1 (不包含) 之間的隨機(jī)數(shù)。
- 若提供了參數(shù)?
seed
,MySQL?RAND(seed)
?函數(shù)將產(chǎn)生一個(gè)可重復(fù)的隨機(jī)數(shù)序列。 - 若想返回其他區(qū)間(比如?
m
?和?n
)的隨機(jī)數(shù),請(qǐng)使用以下公式:-
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
? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-846123.html
到了這里,關(guān)于MYSQL數(shù)字函數(shù):不可不知的數(shù)據(jù)處理利器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!