MYSQL数字函数详解及实战记录(数字函数大全,内含示例)

 更新时间:2024年01月06日 15:31:23   作者:小贤java  
数学运算函数可以实现常见的数学运算,这篇文章主要给大家介绍了关于MYSQL数字函数详解及实战的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

MySQL提供了许多数字函数,用于对数字进行各种计算和处理。以下是一些常用的MySQL数字函数。

内容有点多,建议收藏以备后续用到查阅参考

一、SIGN 取数字的符号

MySQL SIGN() 函数返回指定的数字的符号。参数为正数、负数和零时分别返回 1-1 和 0

语法:

SIGN(number)

参数说明:

  • number:必需的。 一个数字。

返回值:

  •  返回值为 1-1,0 和 NULL 中的一个:
    • 如果 number 大于 0SIGN() 函数将会返回 1
    • 如果 number 等于 0SIGN() 函数将会返回 0
    • 如果 number 小于 0SIGN() 函数将会返回 -1
    • 如果 number 为 NULLSIGN() 函数将会返回 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() 函数返回指定数字的绝对值。

语法:

ABS(number)

参数说明:

  • number必需的。 一个用于计算绝对值的数字。

返回值:

  • 返回数字的绝对(正)值。
  • 如果参数 number 为字符串,ABS() 将按照如下规则尝试转为数字:
    • 如果以数字开头,则将开头的数字部分转为数字。
    • 如果不能转为数字,则按照 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() 函数返回指定数值的余弦值。

语法:

COS(number)

参数说明:

  • number:必需的。 一个用于计算余弦值的数值。

返回值:

  • 指定数值的余弦值。
  • 返回 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() 函数返回指定数值的反余弦值。

语法:

ACOS(number)

参数说明:

  • number:必需的。 一个用于计算反余弦值的数值。

返回值:

  • 返回指定数值的反余弦值。
  • 返回 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() 函数返回指定数值的正弦值。

语法:

SIN(number)

参数说明:

  • number:必需的。 一个用于计算正弦值的数值。

返回值:

  • 指定数值的正弦值。
  • 返回 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() 函数返回指定数值的反正弦值。

语法:

ASIN(number)

参数说明:

  • number:必需的。 一个用于计算反正弦值的数值。

返回值:

  • 指定数值的反正弦值。
  • 返回 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() 函数返回指定数值的正切值。

语法:

TAN(number)

参数说明:

  • number:必需的。 一个用于计算正切值的数值。

返回值:

  • 指定数值的正切值。
  • 返回 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() 函数返回指定数值的反正切值。

语法:

ATAN(number)
ATAN(x, y)

参数说明:

  • number:必需的。 一个用于计算反正切值的数值。
  • x, y:必需的。 一个用于计算反正切值的两个数值。x 和 y 的符号用于确定结果的象限。

返回值:

  • 指定数值的反正切值。
  • 返回 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() 函数返回指定数值的反正切值。

语法:

ATAN2(x, y)

参数说明:

  • x, y:必需的。 一个用于计算反正切值的两个数值。x 和 y 的符号用于确定结果的象限。

返回值:

  • 指定数值的反正切值。
  • 返回 NULL情况:任一参数为 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() 函数返回指定数值的余切值。

语法:

COT(number)

参数说明:

  • number:必需的。 一个用于计算余切值的数值。

返回值:

  • 指定数值的余切值。
  • 返回 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() 函数返回大于或等于指定数字的最小整数值。CEIL() 函数等同于 CEILING() 函数。

语法:

CEIL(number)

参数说明:

  • number:必需的。 一个数字。

返回值:

  • 大于或等于指定数字的最小整数值。
  • 返回 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() 函数返回大于或等于指定数字的最小整数值。CEILING() 函数等同于 CEIL() 函数。

语法:

CEILING(number)

参数说明:

  • number:必需的。 一个数字。

返回值:

  • 大于或等于指定数字的最小整数值。
  • 返回 NULL情况:number 为 NULL。

示例:

SELECT
    CEILING(123.789),	-- 124
    CEILING(123),	-- 123
    CEILING(-123.123),	-- -123
    CEILING(-123),	-- -123
    CEILING(NULL)-- NULL

十三、FLOOR 向下取整

MySQL FLOOR() 函数返回小于或等于指定数字的最大整数值。

语法:

FLOOR(number)

参数说明:

  • number:必需的。 一个数字。

返回值:

  • 小于或等于指定数字的最大整数值。
  • 返回 NULL情况:number 为 NULL。

示例:

SELECT
    FLOOR(123.123),	    -- 123
    FLOOR(123),	        -- 123
    FLOOR(-123.123),	-- -124
    FLOOR(-123),	    -- -123
    FLOOR(NULL)	        -- NULL

十四、ROUND 取四舍五入

MySQL ROUND() 函数将数字四舍五入到指定的小数位数。

语法:

ROUND(x, d)

参数说明:

  • x:必需的。 被处理的数字。
  • d:必需的。 需要保留的小数位数。

返回值:

  • 将数字四舍五入到指定的小数位数。
  • 如果 d 大于等于 x 的小数位数,则返回原数字。
  • 如果 d 小于 x 的小数位数,则将 x 的小数位四舍五入到 d 位后返回。
  • 如果 d 为负数,ROUND() 函数将会从小数点开始向整数部分的 d 位数字替换为 0
  • 返回 NULL情况:任意一个参数为 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 截取小数位

MySQL TRUNCATE() 函数截取数字为指定的小数位数。 TRUNCATE() 函数只是按指定的位数截断小数,而不进行四舍五入。

语法:

TRUNCATE(x, d)

参数说明:

  • x:必需的。 被处理的数字。
  • d:必需的。 需要保留的小数位数。

返回值:

  • 保留了指定小数位的数字。
  • 如果 d 大于等于 x 的小数位数,则返回原数字。
  • 如果 d 小于 x 的小数位数,则将 x 的小数位数截断为 d 位后返回。
  • 如果 d 为负数,TRUNCATE() 函数将会从小数点开始向整数部分的 d 位数字替换为 0
  • 返回 NULL情况:任意一个参数为 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 进制转为另一个进制

MySQL CONV() 函数将数字从一个进制转为另一个进制,比如从 10 进制转为 2 进制。

语法:

CONV(num, from_base, to_base)

参数说明:

  • num:必需的。一个数字。
  • from_base:必需的。 数字当前使用的进制。从 2 到 36。
  • to_base:必需的。 将数字转为的进制。从 2 到 36。

返回值:

  • 将数字从一个进制转为另一个进制。
  • 返回 NULL情况:任意一个参数为 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 操作符计算两个整数的除法并返回一个整数结果。

语法:

x DIV y

参数说明:

  • x:必需的。 被除数。
  • y:必需的。 除数。

返回值:

  • x DIV y 返回 x 除以 y 的结果的整数部分。
  • 若参数 x 或者 y 不是整数,则会先将他们转为 DECIMAL 类型后再计算。

示例:

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的指定数值的次方

MySQL EXP() 函数返回自然常数 e 的指定数值的次方,例如 EXP(2) 返回结果是 e2

语法:

EXP(number)

参数说明:

  • number:必需的。 次方值。

返回值:

  • 自然常数 e 的指定数值的次方。
  • 返回 NULL情况:number 为 NULL。

示例:

SELECT
    EXP(0),		    -- 1
    EXP(2),		    -- 7.38905609893065
    EXP(-1),		-- 0.36787944117144233
    EXP(NULL)	    -- NULL

十九、GREATEST 取列表的最大值

MySQL GREATEST() 函数返回参数列表中的最大值。

语法:

GREATEST(param1, param2, ..., paramN)

参数说明:

  • param1, param2, ..., paramN:必需的。用于比较的参数列表。所有的参数都参与比较。参数可以是任意的数据类型,或者表达式。

返回值:

  • 参数列表中的最大值。
  • 返回 NULL情况:任意一个参数为 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() 函数返回参数列表中的最小值。

语法:

LEAST(param1, param2, ..., paramN)

参数说明:

  • param1, param2, ..., paramN:必需的。用于比较的参数列表。所有的参数都参与比较。参数可以是任意的数据类型,或者表达式。

返回值:

  • 参数列表中的最小值。
  • 返回 NULL情况:任意一个参数为 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 取指定数字的自然对数

MySQL LN() 函数返回指定数字的自然对数。

语法:

LN(number)

参数说明:

  • number:必需的。 一个用于计算自然对数的数字。该值必须大于 0

返回值:

  • 指定数字的自然对数。
  • 返回 NULL情况:
    • number 小于或等于 0。
    • number 为 NULL。

示例:

SELECT
    LN(1),		-- 0
    LN(2),		-- 0.6931471805599453
    LN(0),      -- NULL
    LN(-1),		-- NULL
    LN(NULL)    -- NULL

二十二、LOG 指定数字的指定底数的对数

MySQL LOG() 函数返回指定数字的指定底数的对数。

语法:

LOG(number)
LOG(base, number)

参数说明:

  • number:必需的。 一个用于计算对数的数字。该值必须大于 0
  • base:可选参数。 底数。该值必须大于 1

返回值:

  • 指定数字的指定底数的对数。
  • 返回 NULL情况:
    • number 小于或等于 0。
    • base 小于或等于 1。
    • 任意一个参数为 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 指定数字的以 10 为底的对数

MySQL LOG10() 函数返回指定数字的以 10 为底的对数。等同于 LOG(10, number) 函数。

二十四、LOG2 指定数字的以 2 为底的对数

MySQL LOG2() 函数返回指定数字的以 2 为底的对数。等同于 LOG(2, number) 函数。

二十五、MOD 取两数的余数

MySQL MOD() 函数返回一个数字除以另一个数字的余数。

语法:

MOD(number1, number2)
number1 MOD number2
number1 % number2

参数说明:

  • number1:必需的。 被除数。
  • number2:必需的。 除数。

返回值:

  • 一个数字除以另一个数字的余数。
  • 返回 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() 函数返回 6 位小数位的 PI 值。

语法:

PI()

示例:

SELECT
    PI(),		            -- 3.141593
    PI() + 0.000000,	    -- 3.141593
    PI() * 1000000000000	-- 3141592653589.793000

二十七、POW 计算 x 的 y 次幂

MySQL POW(x, y) 函数计算 x 的 y 次幂并返回结果,即: y个x相乘。

语法:

POW(x, y)

参数说明:

  • x:必需的。 次幂计算中的基数。
  • y:必需的。 次幂计算中的指数。

返回值:

  • x 的 y 次幂并返回结果。
  • 返回 NULL情况:任意一个参数为 NULL。

示例:

SELECT
    POW(2, 0),		    -- 1
    POW(2.5, 2),		-- 6.25
    POW(2, -4),		    -- 0.0625
    POW(2, NULL)	    -- NULL

二十八、POWER 计算 x 的 y 次幂

MySQL POWER(x, y) 函数计算 x 的 y 次幂并返回结果,即: xy。 POWER() 函数等同于 POW() 函数。

二十九、SQRT 取平方根

MySQL SQRT() 函数返回一个数字的平方根。

语法:

SQRT(number)

参数说明:

  • number:必需的。 一个用于计算对数的数字。该值必须大于 0

返回值:

  • 参数 number 的平方根。
  • 返回 NULL情况:number 是负数或者 NULL。

示例:

SELECT
    SQRT(16),	-- 4
    SQRT(101),	-- 10.04987562112089
    SQRT(-100),	-- NULL
    SQRT(NULL)	-- NULL

 三十、DEGREES 弧度值转为度数

MySQL DEGREES() 函数将弧度值转为度数并返回。

语法:

DEGREES(number)

参数说明:

  • number:必需的。 一个表示弧度的数字。

返回值:

  • 指定的弧度值对应的度数。
  • 返回 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 度数值转为弧度值

MySQL RADIANS() 函数将度数值转为弧度值并返回。

语法:

RADIANS(number)

参数说明:

  • number:必需的。 一个表示度数的数字。

返回值:

  • 指定的弧度值对应的度数。
  • 返回 NULL情况:number 为 NULL。

示例:

SELECT
    RADIANS(0),		    -- 0
    RADIANS(360),	    -- 6.283185307179586
    RADIANS(-360),	    -- -6.283185307179586
    RADIANS(NULL)		-- NULL

三十二、RAND 取0到1的随机数

MySQL RAND() 函数返回一个 0 (包含) 和 1 (不包含) 之间的随机数。

语法:

RAND()
RAND(seed)

参数说明:

  • seed:可选的。产生随机数的种子。如果提供了 seedRAND(seed) 函数将产生一个可重复的随机数序列。

返回值:

  • 一个 0 (包含) 和 1 (不包含) 之间的随机数。
  • 若提供了参数 seed,MySQL RAND(seed) 函数将产生一个可重复的随机数序列。
  • 若想返回其他区间(比如 m 和 n)的随机数,请使用以下公式:
    • m 和 n 之间的随机数: RAND() * (n - m) + m
    • m 和 n 之间的随机整数: FLOOR(RAND() * (n - m + 1) + m)

示例:

SELECT
    RAND(),		-- 0.9892005063492809
    RAND(),		-- 0.2601393091121123
    RAND(),		-- 0.3330950572463638
    RAND()		-- 0.8850573896291268

总结 

到此这篇关于MYSQL数字函数详解及实战的文章就介绍到这了,更多相关MYSQL数字函数详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • MySQL数据库服务器端核心参数详解和推荐配置

    MySQL数据库服务器端核心参数详解和推荐配置

    MySQL手册上也有服务器端参数的解释,以及参数值的相关说明信息,现针对我们大家重点需要注意、需要修改或影响性能 的服务器端参数,作其用处的解释和如何配置参数值的推荐,此事情拖了不少时间,为方便大家帮忙纠错
    2011-12-12
  • macOS 下的 MySQL 8.0.17 安装与简易配置教程图解

    macOS 下的 MySQL 8.0.17 安装与简易配置教程图解

    这篇文章主要介绍了macOS 下的 MySQL 8.0.17 安装与简易配置教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔

    MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔

    这篇文章主要介绍了MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 浅谈mysql数据库中的换行符与textarea中的换行符

    浅谈mysql数据库中的换行符与textarea中的换行符

    下面小编就为大家带来一篇浅谈mysql数据库中的换行符与textarea中的换行符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • mysql decimal类型判断是否为0

    mysql decimal类型判断是否为0

    在MySQL中,DECIMAL是一种用于存储精确小数的数据类型,本文主要介绍了mysql decimal类型判断是否为0,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • MySQL性能突然下降的原因

    MySQL性能突然下降的原因

    这篇文章主要介绍了MySQL性能突然下降的原因,帮助大家更好的了解和维护数据库,感兴趣的朋友可以了解下
    2020-10-10
  • 深入探索数据库MySQL性能优化与复杂查询相关操作

    深入探索数据库MySQL性能优化与复杂查询相关操作

    数据库MySQL 是一种开源的关系型数据库管理系统,在进行 MySQL 数据库开发过程中,需要深入了解如何进行性能优化和复杂查询,以提高系统的效率和可靠性,本文介绍的非常详细,需要的朋友可以参考一下
    2023-04-04
  • MYSQL统计逗号分隔字段元素的个数

    MYSQL统计逗号分隔字段元素的个数

    本文主要介绍了MYSQL统计逗号分隔字段元素的个数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • mysql 让一个存储过程定时作业的代码

    mysql 让一个存储过程定时作业的代码

    以下例子主要是实现简单的mysq 定时作业,需要的朋友可以参考下。
    2011-05-05
  • CentOS系统下MySQL彻底卸载的几种方法

    CentOS系统下MySQL彻底卸载的几种方法

    在CentOS系统中,我们可以使用多种方法来卸载MySQL软件包,这篇文章主要给大家介绍了关于CentOS系统下MySQL彻底卸载的几种方法,文中通过代码示例将每种方法都介绍的非常详细,需要的朋友可以参考下
    2023-11-11

最新评论