1. 总览表

名称 描述
%, MOD 模运算符,取余
* 乘法运算符
+ 加法运算符
- 减号
- 更改参数的符号
/ 部门运营商
ABS() 返回绝对值
ACOS() 返回反余弦
ASIN() 返回反正弦
ATAN() 返回反正切
ATAN2(), ATAN() 返回两个参数的反正切
CEIL() 返回不小于参数的最小整数值
CEILING() 返回不小于参数的最小整数值
CONV() 在不同的基数之间转换数字
COS() 返回余弦
COT() 返回余切
CRC32() 计算循环冗余校验值
DEGREES() 将弧度转换为度
DIV 整数除法
EXP() 提升力量
FLOOR() 返回不大于参数的最大整数值
LN() 返回参数的自然对数
LOG() 返回第一个参数的自然对数
LOG10() 返回参数的以10为底的对数
LOG2() 返回参数的以2为底的对数
MOD() 退还剩余
PI() 返回pi的值
POW() 将自变量提高到指定的幂
POWER() 将自变量提高到指定的幂
RADIANS() 返回参数转换为弧度
RAND() 返回一个随机浮点值
ROUND() 围绕论点
SIGN() 返回参数的符号
SIN() 返回参数的正弦
SQRT() 返回参数的平方根
TAN() 返回参数的正切值
TRUNCATE() 截断为指定的小数位数

2. 算数运算符

%, MOD 模运算符
* 乘法运算符
+ 加法运算符
- 减号
- 更改参数的符号
/ 部门运营商
DIV 整数除法

2.1 加减乘除的简单运算

  1. SELECT 3 + 5;
  2. -- 8
  3. SELECT 3 - 5;
  4. -- -2
  5. SELECT 3 * 5
  6. -- 15
  7. SELECT 3 / 5
  8. -- 0.6
  9. SELECT - 2;
  10. -2

2.2 产生NULL和异常的运算

-- 没事闲着型错误
SELECT ++1; -- 1
SELECT +1; -- 1
SELECT 1++; -- ERR 1064
SELECT 1+; -- ERR 1064

-- 除零
SELECT 1/0; -- NULL

-- 超出运算范围
SELECT 18014398509481984 * 18014398509481984;
-- Err 1690 - BIGINT value is out of range

2.3 其他运算

-- 整除 DIV
SELECT 5 DIV 2, -5 DIV 2, 5 DIV -2, -5 DIV -2;
-- 2    -2    -2    2

-- 取余  N % M, N MOD M
SELECT 5 MOD 3;
-- 2

SELECT 5 % 3;
-- 2

3. 数学函数

3.1 常用函数

abs()一绝对值

SELECT ABS(2);
-- 2
mysql> SELECT ABS(-32);
-- 32

mod()一取余数

SELECT MOD(234, 10);
-- 4
SELECT 253 % 7;
-- 1
SELECT MOD(29,9);
-- 2
SELECT 29 MOD 9;
-- 2

cell()一向上取整(返回不小于这个数的最小整数)

-- cell() 是 celling() 的别名
SELECT CEIL(1.23);
-- 2

SELECT CEILING(1.23);
-- 2

floor()一向下取整(返回不大于该数的最大整数)

SELECT FLOOR(1.23), FLOOR(-1.23);
-- 1, -2

conv()一 进制装换函数

-- CONV(N, from_base, to_base)
-- N:返回字符串的表现形式
-- from_base:原数
-- to_base:转换后的数

SELECT CONV('a',16,2);
-- '1010'
SELECT CONV('6E',18,8);
-- '172'
SELECT CONV(-17,10,-18);
-- '-H'
SELECT CONV(10+'10'+'10'+X'0a',10,10);
-- '40'

pow()一求幂函数

-- pow() 是 power() 的别名
SELECT POW(2,3);
-- 8
SELECT POWER(2,3);
-- 8

sqrt()一返回非负数的平方根

SELECT SQRT(4);
-- 2
SELECT SQRT(20);
-- 4.4721359549996
SELECT SQRT(-16);
-- NULL

rand()一返回0~1.0的随机浮点数

SELECT RAND()
-- 0.7222141518464443

round()一四舍五入函数

-- 第一个参数指定操作数,第二个参数指定精度位
SELECT ROUND(-1.23);
-- -1
SELECT ROUND(-1.58);
-- -2
SELECT ROUND(1.58);
-- 2
SELECT ROUND(1.298, 1);
-- 1.3
SELECT ROUND(1.298, 0);
-- 1
SELECT ROUND(23.298, -1);
-- 20
SELECT ROUND(.12345678901234567890123456789012345, 35);
-- 0.123456789012345678901234567890

truncate()一舍弃小数

-- 第一个参数是操作数,第二个参数指定精度位
-- 注意和 round() 不同必须指定第二个参数
SELECT TRUNCATE(1.223,1);
-- 1.2
SELECT TRUNCATE(1.999,1);
-- 1.9
SELECT TRUNCATE(1.999,0);
-- 1
SELECT TRUNCATE(-1.999,1);
-- -1.9
SELECT TRUNCATE(122,-2);
-- 100
SELECT TRUNCATE(10.28*100,0);
-- 1028