mysql数学函数名_Mysql数学函数

所有的数学函数在发生错误的情况下,均返回 NULL。

-

一元减。改变参数的符号:

mysql> SELECT - 2;

-> -2

注意,如果这个操作符被用于一个 BIGINT,返回值也是一个 BIGINT!这就意味着,应该避免在一个可能有值

-2^63 的整数上使用

- 操作符!

ABS(X)

返回 X 的绝对值:

mysql> SELECT ABS(2);

-> 2

mysql> SELECT ABS(-32);

-> 32

这个函数可安全地使用于 BIGINT 值。

SIGN(X)

以 -1、0 或 1 方式返回参数的符号,它取决于参数

X 是负数、0 或正数。

mysql> SELECT SIGN(-32);

-> -1

mysql> SELECT SIGN(0);

-> 0

mysql> SELECT SIGN(234);

-> 1

MOD(N,M)

%

取模 (就如 C 中的 %

操作符)。返回 N 被

M 除后的余数:

mysql> SELECT MOD(234, 10);

-> 4

mysql> SELECT 253 % 7;

-> 1

mysql> SELECT MOD(29,9);

-> 2

mysql> SELECT 29 MOD 9;

-> 2

这个函数可安全地使用于 BIGINT 值。最后一个示例可在 MySQL 4.1

中工作。

FLOOR(X)

返回不大于 X

的最大整数值:

mysql> SELECT FLOOR(1.23);

-> 1

mysql> SELECT FLOOR(-1.23);

-> -2

注意,返回值被转换为一个 BIGINT!

CEILING(X)

返回不小于 X

的最小整数:

mysql> SELECT CEILING(1.23);

-> 2

mysql> SELECT CEILING(-1.23);

-> -1

注意,返回值被转换为一个 BIGINT!

ROUND(X)

ROUND(X,D)

将参数 X

四舍五入到最近的整数,然后返回。两个参数的形式是将一个数字四舍五入到

D 个小数后返回。

mysql> SELECT ROUND(-1.23);

-> -1

mysql> SELECT ROUND(-1.58);

-> -2

mysql> SELECT ROUND(1.58);

-> 2

mysql> SELECT ROUND(1.298, 1);

-> 1.3

mysql> SELECT ROUND(1.298, 0);

-> 1

注意,当参数在两个整数之间时, ROUND() 的行为取决于 C

库的实现。某些取整到最近的偶数,总是向下取,总是向上取,也可能总是接近于零。如果你需要某种取整类型,应该使用一个明确定义的函数比如

TRUNCATE() 或

FLOOR() 代替。

DIV

整除。类似于 FLOOR(),但是它可安全地用于

BIGINT 值。

mysql> SELECT 5 DIV 2

-> 2

DIV 在 MySQL 4.1.0

中新加入。

EXP(X)

返回值 e

(自然对数的底) 的 X

次方:

mysql> SELECT EXP(2);

-> 7.389056

mysql> SELECT EXP(-2);

-> 0.135335

LN(X)

返回 X 的自然对数:

mysql> SELECT LN(2);

-> 0.693147

mysql> SELECT LN(-2);

-> NULL

这个函数在 MySQL 4.0.3 被新加入。在 MySQL 中,它是

LOG(X) 的同义词。

LOG(X)

LOG(B,X)

如果以一个参数调用,它返回 X 的自然对数:

mysql> SELECT LOG(2);

-> 0.693147

mysql> SELECT LOG(-2);

-> NULL

如果以两个参数调用,这个函数返回 X 任意底 B 的对数:

mysql> SELECT LOG(2,65536);

-> 16.000000

mysql> SELECT LOG(1,100);

-> NULL

任意底选项在 MySQL 4.0.3 中被加入。LOG(B,X) 等价于 LOG(X)/LOG(B)。

LOG2(X)

返回 X 的以 2

为底的对数:

mysql> SELECT LOG2(65536);

-> 16.000000

mysql> SELECT LOG2(-100);

-> NULL

LOG2()

通常可以用于计数出一个数字需要多少个比特位用于存储它。这个函数在

MySQL 4.0.3 中被添加。在更早的版本中,可以使用 LOG(X)/LOG(2) 来代替它。

LOG10(X)

返回 X 以 10

为底的对数:

mysql> SELECT LOG10(2);

-> 0.301030

mysql> SELECT LOG10(100);

-> 2.000000

mysql> SELECT LOG10(-100);

-> NULL

POW(X,Y)

POWER(X,Y)

返回 X 的

Y 幂:

mysql> SELECT POW(2,2);

-> 4.000000

mysql> SELECT POW(2,-2);

-> 0.250000

SQRT(X)

返回 X

的非否平方根:

mysql> SELECT SQRT(4);

-> 2.000000

mysql> SELECT SQRT(20);

-> 4.472136

PI()

返回 PI 值(圆周率)。缺少显示 5 位小数,但是在 MySQL 内部,为 PI

使用全部的双精度。

mysql> SELECT PI();

-> 3.141593

mysql> SELECT PI()+0.000000000000000000;

-> 3.141592653589793116

COS(X)

返回 X

的余弦,在这里,X

以弧度给出:

mysql> SELECT COS(PI());

-> -1.000000

SIN(X)

返回 X

的正弦,在这里,X

以弧度给出:

mysql> SELECT SIN(PI());

-> 0.000000

TAN(X)

返回 X

的正切,在这里,X

以弧度给出:

mysql> SELECT TAN(PI()+1);

-> 1.557408

ACOS(X)

返回 X

的反余弦,更确切地说,返回余弦值为 X 的值。如果 X 不在 -1 到 1 之间的范围内,返回 NULL:

mysql> SELECT ACOS(1);

-> 0.000000

mysql> SELECT ACOS(1.0001);

-> NULL

mysql> SELECT ACOS(0);

-> 1.570796

ASIN(X)

返回 X

的反正弦,更确切地说,返回正弦值为 X 的值。如果 X 不在 -1 到 1 之间的范围内,返回 NULL:

mysql> SELECT ASIN(0.2);

-> 0.201358

mysql> SELECT ASIN('foo');

-> 0.000000

ATAN(X)

返回 X

的反正切,更确切地说,返回正切值为 X 的值:

mysql> SELECT ATAN(2);

-> 1.107149

mysql> SELECT ATAN(-2);

-> -1.107149

ATAN(Y,X)

ATAN2(Y,X)

返回两个变量 X 和

Y 的反正切。它类似于计算

Y / X

的反正切,除了两个参数的符号用于决定结果的象限:

mysql> SELECT ATAN(-2,2);

-> -0.785398

mysql> SELECT ATAN2(PI(),0);

-> 1.570796

COT(X)

返回 X 的余切:

mysql> SELECT COT(12);

-> -1.57267341

mysql> SELECT COT(0);

-> NULL

RAND()

RAND(N)

返回一个范围在 0 到

1.0

之间的随机浮点值。如果一个整数参数 N

被指定,它被当做种子值使用(用于产生一个可重复的数值):

mysql> SELECT RAND();

-> 0.9233482386203

mysql> SELECT RAND(20);

-> 0.15888261251047

mysql> SELECT RAND(20);

-> 0.15888261251047

mysql> SELECT RAND();

-> 0.63553050033332

mysql> SELECT RAND();

-> 0.70100469486881

在一个 ORDER BY

子句中,不可以使用 RAND()

值使用一个列,因为 ORDER

BY 将多次重复计算列。从 MySQL 3.23

开始,你可以使用:SELECT * FROM

table_name ORDER BY RAND(),这有利于得到一个来自

SELECT * FROM table1,table2 WHERE a=b

AND c

的集合中的随机样本。 注意,在一个 WHERE 子句中的 RAND() 将在每次 WHERE 执行时被重新计算。 RAND()

并不是预期完美的随机数发生器,但是可以代替做为产生特别的随机数一个快速的方法,这样便于在两个不同平台下的同一

MySQL 版本间移动。

LEAST(X,Y,...)

有两个或更多个参数,返回最小(最小值)的参数。参数使用下列规则进行比较:

如果返回值用于一个 INTEGER

语境,或所有的参数是整数值,它们作为整数比较。

如果返回值用于一个 REAL

语境,或所有的参数均是实数值,它们作为实数被比较。

如果任何一个参数是字母大小写敏感的,参数作为大小写敏感的字符串进行比较。

在其它情况下,参数做为忽略大小写的字符中进行比较:

mysql> SELECT LEAST(2,0);

-> 0

mysql> SELECT LEAST(34.0,3.0,5.0,767.0);

-> 3.0

mysql> SELECT LEAST("B","A","C");

-> "A"

在早于 MySQL 3.22.5 的版本中,你可以使用 MIN() 代替 LEAST。

GREATEST(X,Y,...)

返回最大(最大值)参数。参数使用与 LEAST 一致的规则进行比较:

mysql> SELECT GREATEST(2,0);

-> 2

mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);

-> 767.0

mysql> SELECT GREATEST("B","A","C");

-> "C"

在早于 MySQL 3.22.5 的版本中,可以使用 MAX() 代替 GREATEST。

DEGREES(X)

将参数 X

从弧度转换为角度,然后返回:

mysql> SELECT DEGREES(PI());

-> 180.000000

RADIANS(X)

将参数 X

从角度转换为弧度,然后返回:

mysql> SELECT RADIANS(90);

-> 1.570796

TRUNCATE(X,D)

将数值 X 截到

D 个小数,然后返回。如果

D 为 0,结果将不包含小数点和小数部分:

mysql> SELECT TRUNCATE(1.223,1);

-> 1.2

mysql> SELECT TRUNCATE(1.999,1);

-> 1.9

mysql> SELECT TRUNCATE(1.999,0);

-> 1

mysql> SELECT TRUNCATE(-1.999,1);

-> -1.9

从 MySQL 3.23.51 开始,所有数字被四舍五入到零。 如果

D

是负数,那么数字的整个部分被对准零位输出:

mysql> SELECT TRUNCATE(122,-2);

-> 100

注意,十进值小数在计算机中通常不以精确数字存储,而是双精度型的值,你可能会被下列结果所愚弄:

mysql> SELECT TRUNCATE(10.28*100,0);

-> 1027

上面结果的发生是因为 10.28 实际上是以某些像 10.2799999999999999

的形式被存储的。

MySQL 5.1参考手册

http://dev.mysql.com/doc/refman/5.1/zh/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值