数值函数:

  用来处理很多数值方面的运算,使用数值函数,可以免去很多繁杂的判断求值的过程,能够大大提高用户的工作效率。

1、ABS(x):返回 x 的绝对值

  1. mysql> select abs(-0.8),abs(0.8);
  2. +-----------+----------+
  3. | abs(-0.8) | abs(0.8) |
  4. +-----------+----------+
  5. | 0.8 | 0.8 |
  6. +-----------+----------+

2、CEIL(x):返回不小于 x 的最小整数,也就是说得大于或等于x的最小整数

  同义词:ceiling(x)

  1. mysql> select ceil(1);
  2. +---------+
  3. | ceil(1) |
  4. +---------+
  5. | 1 |
  6. +---------+
  7.  
  8. mysql> select ceil(1.23),ceiling(-1.23);
  9. +------------+----------------+
  10. | ceil(1.23) | ceiling(-1.23) |
  11. +------------+----------------+
  12. | 2 | -1 |
  13. +------------+----------------+

3、FLOOR(x):返回不大于 x 的最大整数(与CEIL的用法刚好相反)

  1. mysql> select floor(1.23),floor(-1.23);
  2. +-------------+--------------+
  3. | floor(1.23) | floor(-1.23) |
  4. +-------------+--------------+
  5. | 1 | -2 |
  6. +-------------+--------------+

4、MOD(x,y):返回数字x除以y后的余数:x mod y

  和 x%y 的结果相同;

  模数和被模数任何一个为NULL(无效数)结果都为 NULL

  1. mysql> select mod(123,10),234%7,3 mod 2;
  2. +-------------+-------+---------+
  3. | mod(123,10) | 234%7 | 3 mod 2 |
  4. +-------------+-------+---------+
  5. | 3 | 3 | 1 |
  6. +-------------+-------+---------+

注意:余数可以有小数;除数为0不抛出异常

  1. mysql> select mod(3.14,3),mod(3,0);
  2. +-------------+----------+
  3. | mod(3.14,3) | mod(3,0) |
  4. +-------------+----------+
  5. | 0.14 | NULL |
  6. +-------------+----------+

5、ROUND(X[,D]):将数字X四舍五入到指定的小数位数D

  ①如果不指定D,则默认为0

  ②如果D是负数,表示从小数点的左边进行四舍五入

  1. mysql> select round(1.58),round(1.298,1);
  2. +-------------+----------------+
  3. | round(1.58) | round(1.298,1) |
  4. +-------------+----------------+
  5. | 2 | 1.3 |
  6. +-------------+----------------+
  7.  
  8. mysql> select round(1.58,0),round(1.298,-1);
  9. +---------------+-----------------+
  10. | round(1.58,0) | round(1.298,-1) |
  11. +---------------+-----------------+
  12. | 2 | 0 |
  13. +---------------+-----------------+

6、TRUNCATE(X,D):将数字X截断到指定的小数位数D(不四舍五入)

  ①如果D为0,表示不要小数

  ②如果D是负数,表示从小数点的左边进行截断

  1. mysql> select truncate(1.999,1),truncate(1.999,0);
  2. +-------------------+-------------------+
  3. | truncate(1.999,1) | truncate(1.999,0) |
  4. +-------------------+-------------------+
  5. | 1.9 | 1 |
  6. +-------------------+-------------------+
  7.  
  8. mysql> select truncate(-1.999,1),truncate(123,-2);
  9. +--------------------+------------------+
  10. | truncate(-1.999,1) | truncate(123,-2) |
  11. +--------------------+------------------+
  12. | -1.9 | 100 |
  13. +--------------------+------------------+

注意:TRUNCATE 和 ROUND 的区别在于 TRUNCATE 仅仅是截断,而不进行四舍五入

  1. mysql> select round(1.235,2),truncate(1.235,2);
  2. +----------------+-------------------+
  3. | round(1.235,2) | truncate(1.235,2) |
  4. +----------------+-------------------+
  5. | 1.24 | 1.23 |
  6. +----------------+-------------------+

7、RAND():返回一个随机浮点数v(0<=v<1.0)

  1. mysql> select rand(),rand();
  2. +--------------------+---------------------+
  3. | rand() | rand() |
  4. +--------------------+---------------------+
  5. | 0.7085628693071779 | 0.19879874978102627 |
  6. +--------------------+---------------------+

RAND(x):指定整数x,则用作种子值,产生一个可重复的数字序列

  1. mysql> select rand(1),rand(2),rand(1);
  2. +---------------------+--------------------+---------------------+
  3. | rand(1) | rand(2) | rand(1) |
  4. +---------------------+--------------------+---------------------+
  5. | 0.40540353712197724 | 0.6555866465490187 | 0.40540353712197724 |
  6. +---------------------+--------------------+---------------------+

利用RAND()函数可以取任意指定范围内的随机数

  类似于shell> $((RANDOM % 100))得到随机值  

比如:产生 0~100 内的任意随机整数

  1. mysql> select ceil(100*rand()),ceil(100*rand());
  2. +------------------+------------------+
  3. | ceil(100*rand()) | ceil(100*rand()) |
  4. +------------------+------------------+
  5. | 87 | 75 |
  6. +------------------+------------------+

若要得到一个随机整数R,i <= R < j

expr:FLOOR(i + RAND() * (j - i))

  Q:取随机整数R,7<=R<12

  A:mysql> select floor(7+(rand()*5));

注意:

  ①当在 WHERE 子句中使用RAND()时,每次当WHERE执行时都要重新计算 RAND()

  ②不能在ORDER BY子句中使用带有随机值的列

但是,可以以随机的顺序从表中检索行

  例如:mysql> SELECT * FROM  players ORDER BY RAND();

  ③ORDER BY RAND()常和LIMIT子句一起使用:

  例如:mysql> SELECT * FROM table1,table2 WHERE a=b AND c<d  ORDER BY RAND() LIMIT 1000;

MySQL常用数值函数的更多相关文章

  1. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  2. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. MySQL常用命令和常见问题

    MySQL常用命令和常见问题 --创建数据库并设置字符集 create database wip default character set utf8 collate utf8_general_ci; ...

  4. mysql常用基本操作

    mysql常用操作 查看都有哪些库 show databases; 查看某个库的表 use 库名; show tables; 查看表的字段 desc 表名; 当前是哪个用户 select user() ...

  5. MySQL 常用的sql语句小结(待续)

    mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...

  6. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  7. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  8. MySQL数据库3 - MySQL常用数据类型

    一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的       ---> 数 ...

  9. mysql常用函数参考

    mysql常用函数参考   对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...

随机推荐

  1. 关于datagrid中控件利用js调用后台方法事件的问题

    前台调用后台方法除了用button的click事件,还可以用js调用  一.前台页面如图 需求点击这个按钮触发后台事件,从而能够调用存储过程 <epoint:HyperLinkColumn He ...

  2. linux运维架构师职业规划

    1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...

  3. Kubernetes 笔记 07 豌豆荚之旅(二)

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Hi,大家好, ...

  4. 论Java访问权限控制的重要性

    人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说“钱乃身外之物,生不带来死不带去”,但我们又都知道“有钱能使鬼推磨” ...

  5. asp.net core系列 26 EF模型配置(实体关系)

    一.概述 EF实体关系定义了两个实体互相关联起来(主体实体和依赖实体的关系,对应数据库中主表和子表关系). 在关系型数据库中,这种表示是通过外键约束来体现.本篇主要讲一对多的关系.先了解下描述关系的术 ...

  6. UPC:ABS

    问题 G: ABS 时间限制: 1 Sec  内存限制: 128 MB提交: 537  解决: 186[提交] [状态] [讨论版] [命题人:admin] 题目描述 We have a deck c ...

  7. docker 安装LAMP环境

    LAMP:Linux.Apache.MySQL.PHP docker hub 上会有配好的LAMP环境docker,部署到本地并运行起来 sudo docker pull linode/lamp 然后 ...

  8. -1-7 java 网络编程基本知识点 计算机网络 TCP/IP协议栈 通信必备 tcp udp

    计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 ...

  9. 第41章 CORS - Identity Server 4 中文文档(v1.0.0)

    第41章 CORS IdentityServer中的许多端点将通过基于JavaScript的客户端的Ajax调用进行访问.鉴于IdentityServer最有可能托管在与这些客户端不同的源上,这意味着 ...

  10. 重写(override)和重载(overload)的区别

    override(重写): 是进行基类中函数的重写,是面向对象的概念 重载(overload):是方法的名称相同,参数或参数类型不同,进行多次重载以适应不同的需要.overload 是面向对象的概念.