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<d ORDER BY RAND() LIMIT 1000的集合中的随机样本。 注意,在一个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 数学函数的更多相关文章
- MySQL数学函数简明总结
1. ABS(x): 返回x的绝对值 mysql> select ABS(1), ABS(-1), ABS(0); +--------+---------+--------+| ABS(1) | ...
- MySQL数学函数
官方文档:Numeric Functions and Operators Name Description ABS() Return the absolute value ACOS() Return ...
- MySQL好用的数学函数
最近项目很忙,分给我的功能都比较复杂,还好能应付的下来.在工作的过程中,我发现使用mysql的自带函数能够极大的减少程序的复杂度.这是必然的,使用mysql的函数,能够在程序里面省却很多的循环遍历.但 ...
- MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...
- MySql常用函数数学函数、加密函数等(转—收藏)
MySql函数众多,这里只是列举了一部分常用的函数. 一.数学函数 ABS(x) // 返回x的绝对值 BI ...
- MySQL 进阶4 SQL常见函数: 字符函数/数学函数/日期函数/流程控制函数(if/case)
# 进阶4 SQL常见函数 分类: 1/单行函数: 字符函数: concat(),length(),ifnull(__,default) ,instr(), trim(),upper(),lower( ...
- mysql 函数 时间函数,数学函数,字符串函数,条件判断函数
=========================================== mysql 相关函数 ============================================= ...
- MySql cmd下的学习笔记 —— 有关常用函数的介绍(数学函数,聚合函数等等)
(一)数学函数 abs(x) 返回x的绝对值 bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x) ...
- Mysql常用函数,难点,注意
一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e( ...
随机推荐
- Ajax.html:35 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org
AJAX的容易错误的地方 Ajax.html:35 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated ...
- Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。
今天遇到的一个大坑,话不多少,看sql和下边的查询结果: --问题:恰好把buildingid is null的记录给过滤掉 ),buildingid ),)); ); ); ); ); ); ); ...
- wrapper x64 版本发布到centos
背景: 项目需要在spark任务提交服务器节点上自动提交任务到spark集群上.因此创建了一个固定时间监控任务项目,使用timer定时监控oracle数据库中是否有spark提交任务,如果有spark ...
- jacascript DOM节点——节点关系与操作
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 节点关系 DOM可以将任何HTML描绘成一个由多层节点构成的结构.每个节点都拥有各自的特点.数据和方法,也 ...
- 对Spring IOC和AOP的理解
控制反转(IOC)是什么?(理解好Ioc的关键是要明确"谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了") 1.Ioc-Inversion of Contr ...
- 使用Swoole测试MySQL在特定SQL下的并发性能
场景描述 从全文检索或者缓存中获取ID,根据ID查询数据库获取基础信息,进行页面展示 SQL:select * from table where id in(id1,id2,id3...id40) 此 ...
- lsdyna进阶教程-弹性球撞击刚性平板
在lsdyna基础教程中,我们做了一个关于刚性球撞击弹性平板的粒子,现在我们考虑另外一个问题,如果用弹性球撞击刚性地面该怎么做呢?是不是要从头开始建模,操作步骤是不是一样呢?其实很简单,将球和地面的材 ...
- Mac安装opencv指南
最近接到了新的调研任务.主要是和人脸,各种所谓'AI'相关的.因为这里要处理视频和图像.于是在网上看到很多资料都是关于opencv的所以准备用opencv来开发这些东西.既然要用到opencv.那 ...
- python3+dlib人脸识别及情绪分析
一.介绍 我想做的是基于人脸识别的表情(情绪)分析.看到网上也是有很多的开源库提供使用,为开发提供了很大的方便.我选择目前用的比较多的dlib库进行人脸识别与特征标定.使用python也缩短了开发周期 ...
- noip2017"退役"记
day0 口胡了一下去年的六道题,感觉很稳,看了6集动漫,0点钟就去睡了. day1 早上被一阵革命练习曲吵醒,而我还是窝在被子里不想起床(-﹃-)~zZ.于是室友开始放起了lost river... ...