MySQL 函数简介——数学函数

最近开发程序用到了MySQL,之前一直用的是DB2和Oracle,突然换成MySQL,发现有些函数不能通用,导致操作数据表时频繁出错,所以整理了一下MySQL的常用函数:

  1. 绝对值函数 ABS(x)和返回圆周率的函数 PI() ABS(X)返回 X 的绝对值

求2、-3.3 和-33 的绝对值,输入语句如下 :

SELECT ABS(2), ABS(-3.3), ABS(-33);

PI()返回圆周率π的值。默认的显示小数位数是 6 位:

 SELECT pi();
  1. 平方根函数 SQRT(x)和求余函数 MOD(x,y) SQRT(x)返回非负数 x 的二次方根 :

求 9、40 和-49 的二次平方根,输入语句如下

 SELECT SQRT(9), SQRT(40), SQRT(-49);

负数没有平方根,会返回null;

MOD(x,y)返回 x除以 y 后的余数,MOD() 对于带有小数部分的数值也起作用,它返回除法运 算后的精确余数。 对(31,8)、(234, 10)、(45.5,6)进行求余运算,输入语句如下:

SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);
  1. 获取整数的函数 CEIL(x)、CEILING(x)和 FLOOR(x) CEIL(x)和 CEILING(x)的意义相同,返回不小于 x 的最小整数值,返回值转化为一个 BIGINT。 使用 FLOOR 函数返回最大整数,输入语句如下:

 SELECT FLOOR(-3.35), FLOOR(3.35);

-3.35 为负数,不大于-3.35 的最大整数为-4,因此返回值为-4;不大于 3.35 的最大整数为 3, 因此返回值为 3。

  1. 获取随机数的函数 RAND()和 RAND(x) RAND(x)返回一个随机浮点值 v,范围在 0 到 1 之间(0 ≤ v ≤ 1.0)。若已指定一个整数参 数 x,则它被用作种子值,用来产生重复序列。 使用 RAND()函数产生随机数,输入语句如下:

SELECT RAND(),RAND(),RAND();

使用 RAND(x)函数产生随机数,输入语句如下:

 SELECT RAND(10),RAND(10),RAND(11); 

当 RAND(x)的参数相同时,将产生相同的随机数,不同的 x 产生的随机数值不同

  1. 函数 ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y) ROUND(x)返回最接近于参数 x 的整数,对 x 值进行四舍五入。 使用 ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:

 SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);

四舍五入处理之后,只保留了各个值的整数部分。

ROUND(x,y)返回最接近于参数 x 的数,其值保留到小数点后面 y 位,若 y 为负值,则将保留 x 值到小数点左边 y 位。 使用 ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定 y 位, 输入语句如下:

SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1),
ROUND(232.38,-2);

ROUND(1.38, 1)保留小数点后面 1 位,四舍五入的结果为 1.4;ROUND(1.38, 0) 保留小数点 后面 0 位,即返回四舍五入后的整数值; ROUND(23.38, -1)和 ROUND (232.38,-2)分别保留小数 点左边 1 位和 2 位。 提示:y 值为负数时,保留的小数点左边的相应位数直接保存为 0,不进行四舍五入。

TRUNCATE(x,y)返回被舍去至小数点后 y 位的数字 x。若 y 的值为 0,则结果不带有小数点 或不带有小数部分。若 y 设为负数,则截去(归零)x 小数点左起第 y 位开始后面所有低位的值。

使用 TRUNCATE(x,y)函数对操作数进行截取操作,结果保留小数点后面指定 y 位, 输入语句如下:

SELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0),
TRUNCATE(19.99,-1);

TRUNCATE(1.31,1)和 TRUNCATE(1.99,1)都保留小数点后 1 位数字,返回值分别为 1.3 和 1.9; TRUNCATE(1.99,0)返回整数部分值 1;TRUNCATE(19.99,-1)截去小数点左边第 1 位后面的值,并 将整数部分的 1 位数字置 0,结果为 10。 提示:ROUND(x,y)函数在截取值的时候会四舍五入,而 TRUNCATE (x,y)直接截取值,并不进 行四舍五入

  1. 符号函数 SIGN(x) SIGN(x)返回参数的符号,x 的值为负、零或正时返回结果依次为-1、0 或 1。 使用 SIGN 函数返回参数的符号,输入语句如下:

 SELECT SIGN(-21),SIGN(0), SIGN(21);

SIGN(-21)返回-1;SIGN(0)返回 0;SIGN(21)返回 1

  1. 幂运算函数 POW(x,y)、POWER(x,y)和 EXP(x) POW(x,y)或者 POWER(x,y)函数返回 x 的 y 次乘方的结果值。 使用 POW 和 POWER 函数进行乘方运算,输入语句如下:

 SELECT POW(2,2), POWER(2,2),POW(2,-2), POWER(2,-2);

POW 和 POWER 的结果是相同的,POW(2,2)和 POWER(2,2)返回 2 的 2 次方,结 果都是 4; POW(2,-2)和 POWER(2,-2)都返回 2 的-2 次方,结果为 4 的倒数,即 0.25。

EXP(x)返回 e 的 x 乘方后的值。 使用 EXP 函数计算 e 的乘方,输入语句如下:

 SELECT EXP(3),EXP(-3),EXP(0);

EXP(3)返回以 e 为底的 3 次方,结果为 20.085536923187668;EXP(-3)返回以 e 为底的-3 次方, 结果为 0.049787068367863944;EXP(0)返回以 e 为底的 0 次方,结果为 1。

  1. 对数运算函数 LOG(x)和 LOG10(x) LOG(x)返回 x 的自然对数,x 相对于基数 e 的对数;

使用 LOG(x)函数计算自然对数,输入语句如下:

SELECT LOG(3), LOG(-3); 

对数定义域不能为负数,因此 LOG(-3)返回结果为 NULL。 LOG10(x)返回 x 的基数为 10 的对数。 使用 LOG10 计算以 10 为基数的对数,输入语句如下:

 SELECT LOG10(2), LOG10(100), LOG10(-100);

10 的 2 次乘方等于 100,因此 LOG10(100)返回结果为 2,LOG10(-100)定义域非负,因此返 回 NULL。

  1. 角度与弧度相互转换的函数 RADIANS(x)和 DEGREES(x) RADIANS(x)将参数 x 由角度转化为弧度 使用 RADIANS 将角度转换为弧度,输入语句如下 :

SELECT RADIANS(90),RADIANS(180);

DEGREES(x)将参数 x 由弧度转化为角度。

使用 DEGREES 将弧度转换为角度,输入语句如下:

 SELECT DEGREES(PI()), DEGREES(PI() / 2); 
  1. 正弦函数 SIN(x)和反正弦函数 ASIN(x) SIN(x)返回 x 正弦,其中 x 为弧度值 使用 SIN 函数计算正弦值,输入语句如下:

SELECT SIN(1), ROUND(SIN(PI()));

ASIN(x)返回 x 的反正弦,即正弦为 x 的值。若 x 不在-1 到 1 的范围之内,则返回 NULL 使用 ASIN 函数计算反正弦值,输入语句如下:

SELECT ASIN(0.8414709848078965), ASIN(3);

由结果可以看到,函数 ASIN 和 SIN 互为反函数;ASIN(3)中的参数 3 超出了正弦值的范围, 因此返回 NULL。

  1. 余弦函数 COS(x)和反余弦函数 ACOS(x) COS(x)返回 x 的余弦,其中 x 为弧度值 使用 COS 函数计算余弦值,输入语句如下:

SELECT COS(0),COS(PI()),COS(1);

由结果可以看到,COS(0)值为 1;COS(PI())值为-1;COS(1)值为 0.5403023058681398。 ACOS(x)返回 x 的反余弦,即余弦是 x 的值。若 x 不在-1~1 的范围之内,则返回 NULL。

使用 ACOS 函数计算反余弦值,输入语句如下:

SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398)); 

由结果可以看到,函数 ACOS 和 COS 互为反函数

  1. 正切函数、反正切函数和余切函数 TAN(x)返回 x 的正切,其中 x 为给定的弧度值。 使用 TAN 函数计算正切值,输入语句如下:

 SELECT TAN(0.3), ROUND(TAN(PI()/4));

ATAN(x)返回 x 的反正切,即正切为 x 的值。 使用 ATAN 函数计算反正切值,输入语句如下:

 SELECT ATAN(0.30933624960962325), ATAN(1); 

由结果可以看到,函数 ATAN 和 TAN 互为反函数。

COT(x)返回 x 的余切。 使用 COT()函数计算余切值,输入语句如下:

 SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);

由结果可以看到,函数 COT 和 TAN 互为倒函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值