• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql数值函数

mysql数值函数

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql,数值函数等相关知识,希望本文的分享对您有所帮助

1. 算术操作符

可使用常见的算术操作符。注意就 -、 +和 *而言, 若两个参数均为正数,则其计算结果的精确度为 BIGINT (64比特),若其中一个参数为无符号整数, 而其它参数也是整数, 则结果为无符号整数。

+

加号:

mysql> SELECT 3+5;

-> 8

-

减号:

mysql> SELECT 3-5;

-> -2

-

一元减号。更换参数符号。

mysql> SELECT - 2;

-> -2

注意:若该 操作符同一个BIGINT同时使用,则返回值也是一个BIGINT。这意味着你应当尽量避免对可能产生–263的整数使用 –。

*

乘号:

mysql> SELECT 3*5;

-> 15

mysql> SELECT 18014398509481984*18014398509481984.0;

-> 324518553658426726783156020576256.0

mysql> SELECT 18014398509481984*18014398509481984;

-> 0

最后一个表达式的结果是不正确的。原因是整数相乘的结果超过了BIGINT 计算的 64比特范围。

/

除号:

mysql> SELECT 3/5;

-> 0.60

被零除的结果为 NULL:

mysql> SELECT 102/(1-1);

-> NULL

只有当执行的语境中,其结果要被转化为一个整数时 ,除法才会和 BIGINT 算法一起使用。

DIV

整数除法。 类似于 FLOOR(),然而使用BIGINT 算法也是可靠的。

mysql> SELECT 5 DIV 2;

-> 2

2. 数学函数

若发生错误,所有数学函数会返回 NULL 。

ABS(X)

返回X 的绝对值。

mysql> SELECT ABS(2);

-> 2

mysql> SELECT ABS(-32);

-> 32

该函数支持使用BIGINT值。

ACOS(X)

返回X 反余弦, 即, 余弦是X的值。若X 不在-1到 1的范围之内,则返回 NULL 。

mysql> SELECT ACOS(1);

-> 0

mysql> SELECT ACOS(1.0001);

-> NULL

mysql> SELECT ACOS(0);

-> 1.5707963267949

ASIN(X)

返回X 的反正弦,即,正弦为X 的值。若X 若X 不在-1到 1的范围之内,则返回 NULL 。

mysql> SELECT ASIN(0.2);        -> 0.20135792079033
mysql> SELECT ASIN('foo');
+-------------+
| ASIN('foo') |
+-------------+
|           0 |
+-------------+
1 row in set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'foo' |
+---------+------+-----------------------------------------+

ATAN(X)

ATAN(X)

返回X 的反正切,即,正切为X 的值。

mysql> SELECT ATAN(2);

-> 1.1071487177941

mysql> SELECT ATAN(-2);

-> -1.1071487177941

ATAN(Y,X) , ATAN2(Y,X)

返回两个变量X 及Y的反正切。 它类似于 Y 或 X的反正切计算, 除非两个参数的符号均用于确定结果所在象限。

mysql> SELECT ATAN(-2,2);

-> -0.78539816339745

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

-> 1.5707963267949

CEILING(X) CEIL(X)

返回不小于X 的最小整数值。

mysql> SELECT CEILING(1.23);

-> 2

mysql> SELECT CEIL(-1.23);

-> -1

这两个函数的意义相同。注意返回值会被转化为一个BIGINT。

COS(X)

返回X 的余弦,其中X在弧度上已知。

mysql> SELECT COS(PI());

-> -1

COT(X)

返回X 的余切。

mysql> SELECT COT(12);

-> -1.5726734063977

mysql> SELECT COT(0);

-> NULL

CRC32(expr)

计算循环冗余码校验值并返回一个 32比特无符号值。若参数为NULL ,则结果为 NULL。该参数应为一个字符串,而且在不是字符串的情况下会被作为字符串处理(若有可能)。

mysql> SELECT CRC32('MySQL');

-> 3259397556

mysql> SELECT CRC32('mysql');

-> 2501908538

DEGREES(X)

返回参数 X, 该参数由弧度被转化为度。

mysql> SELECT DEGREES(PI());

-> 180

mysql> SELECT DEGREES(PI() / 2);

-> 90

EXP(X)

返回e的X乘方后的值(自然对数的底)。

mysql> SELECT EXP(2);

-> 7.3890560989307

mysql> SELECT EXP(-2);

-> 0.13533528323661

mysql> SELECT EXP(0);

-> 1

FLOOR(X)

返回不大于X的最大整数值 。

mysql> SELECT FLOOR(1.23);

-> 1

mysql> SELECT FLOOR(-1.23);

-> -2

注意,返回值会被转化为一个 BIGINT。

FORMAT(X,D)

将数字X 的格式写成'#,###,###.##'格式, 即保留小数点后 D位,而第D位的保留方式为四舍五入,然后将结果以字符串的形式返回。

LN(X)

返回X 的自然对数,即, X 相对于基数e 的对数。

mysql> SELECT LN(2);

-> 0.69314718055995

mysql> SELECT LN(-2);

-> NULL

这个函数同LOG(X)具有相同意义。

LOG(X) LOG(B,X)

若用一个参数调用,这个函数就会返回X 的自然对数。

mysql> SELECT LOG(2);

-> 0.69314718055995

mysql> SELECT LOG(-2);

-> NULL

若用两个参数进行调用,这个函数会返回X 对于任意基数B 的对数。

mysql> SELECT LOG(2,65536);

-> 16

mysql> SELECT LOG(10,100);

-> 2

LOG(B,X) 就相当于 LOG(X) / LOG(B)。

LOG2(X)

返回X 的基数为2的对数。

mysql> SELECT LOG2(65536);

-> 16

mysql> SELECT LOG2(-100);

-> NULL

对于查出存储一个数字需要多少个比特,LOG2()非常有效。这个函数相当于表达式 LOG(X) / LOG(2)。

LOG10(X)

返回X的基数为10的对数。

mysql> SELECT LOG10(2);

-> 0.30102999566398

mysql> SELECT LOG10(100);

-> 2

mysql> SELECT LOG10(-100);

-> NULL

LOG10(X)相当于LOG(10,X)。

MOD(N,M) , N % M N MOD M

模操作。返回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 值。

MOD() 对于带有小数部分的数值也起作用, 它返回除法运算后的精确余数:

mysql> SELECT MOD(34.5,3);

-> 1.5

PI()

返回 ? (pi)的值。默认的显示小数位数是7位,然而 MySQL内部会使用完全双精度值。

mysql> SELECT PI();

-> 3.141593

mysql> SELECT PI()+0.000000000000000000;

-> 3.141592653589793116

POW(X,Y) , POWER(X,Y)

返回X 的Y乘方的结果值。

mysql> SELECT POW(2,2);

-> 4

mysql> SELECT POW(2,-2);

-> 0.25

RADIANS(X)

返回由度转化为弧度的参数 X, (注意 ? 弧度等于180度)。

mysql> SELECT RADIANS(90);

-> 1.5707963267949

RAND() RAND(N)

返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 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

mysql> SELECT RAND(20);

-> 0.15888261251047

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12的范围(包括7和12)内得到一个随机整数, 可使用以下语句:

SELECT FLOOR(7 + (RAND() * 6));

在ORDER BY语句中,不能使用一个带有RAND()值的列,原因是 ORDER BY 会计算列的多重时间。然而,可按照如下的随机顺序检索数据行:

mysql> SELECT * FROM tbl_name ORDER BY RAND();

ORDER BY RAND()同 LIMIT 的结合从一组列中选择随机样本很有用:

mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d

-> ORDER BY RAND() LIMIT 1000;

注意,在WHERE语句中,WHERE每执行一次, RAND()就会被再计算一次。

RAND()的作用不是作为一个精确的随机发生器,而是一种用来发生在同样的 MySQL版本的平

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05设定sql server定期自动备份数据库
  • 2017-05-11MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
  • 2017-05-11MySQL高级查询之与Group By集合使用介绍
  • 2018-12-05MySQL分布式集群之MyCAT(二)schema代码详解
  • 2017-05-11在MySQL中使用STRAIGHT_JOIN的教程
  • 2017-05-11在MySQL中使用LIMIT进行分页的方法
  • 2017-05-11mysql 表空间及索引的查看方法
  • 2018-12-05完美解析SQL只需要简单的十个步骤
  • 2017-05-11MariaDB(Mysql分支)my.cnf配置文件中文注释版
  • 2018-12-05mysql5.7.14解压版安装的实例方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 关于MySQL索引的几点值得注意的事项
    • 深入MySQL存储引擎比较的详解
    • mysql对象信息实例用法汇总
    • MySQL Where 条件语句介绍和运算符小结
    • 解析MySQL中INSERT INTO SELECT的使用
    • php后台经常提示无法连接mysql 刷新后又可以访问的解决方法
    • 关于mysql中替代null的IFNULL()与COALESCE()函数详解
    • SQL Server 数据库索引其索引的小技巧
    • MySQL之-实现MSS主从复制(读写分离)的示例代码
    • mysql中RAND()随便查询记录效率问题和解决办法分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有