目录
6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
6.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
6.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
第六章MySQl函数
MySQL提供了众多功能强大、方便易用的函数。使用这些函数,可以极大地提高用户对数据库的管理效率。MySQL中的函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数。本章将介绍MySQL中这些函数的功能和用法。
6.1数学函数
数学函数主要用来处理数值数据,主要的数学函数有绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。在有错误产生时,数学函数将会返回空值NULL。本节将介绍各种数学函数的功能和用法。
6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
-- 绝对值
SELECT ABS(1),ABS(-1),ABS(0);
-- 圆周率
SELECT PI();
6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
-- SQRT(x)返回非负数x的二次方根。
SELECT SQRT(9),SQRT(40),SQRT(-49);
3的平方等于9,因此9的二次平方根为3;40的平方根为6.324555320336759;而负数没有平方根,因此-49返回的结果为NULL。
-- MOD(x,y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,它返回除法运算后的精确余数。
SELECT MOD(31,8),MOD (234, 10),MOD (45.5,6);
6.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
-- CEIL(x)和CEILING(x)的意义相同,返回不小于x的最小整数值,返回值转化为一个BIGINT。
SELECT CEIL(-3.25),CEILING (3.25);
-- FLOOR(x)返回不大于x的最大整数值,返回值转化为一个BIGINT。
SELECT FLOOR(-3.25) ,FLOOR(3.25);
-- 3.35为负数,不大于-3.35的最大整数为-4,因此返回值为-4;不大于3.35的最大整数为3,因此返回值为3
6.2.4 获取随机数的函数RAND()和RAND(x)
RAND(x)返回一个随机浮点值v,范围在0到1之间(0 ≤ v ≤ 1.0)。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列;
-- 可以看到,不带参数的RAND()每次产生的随机数值是不同的。
SELECT RAND(),RAND(),RAND();
-- 当RAND(x)的参数相同时,将产生相同的随机数,不同的x产生的随机数值不同。
SELECT RAND(10),RAND(10),RAND(11);
6.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
-- ROUND(x)返回最接近于参数x的整数,对x值进行四舍五入。四舍五入处理之后,只保留了各个值的整数部分
SELECT ROUND(-1.14) ,ROUND(-1.67), ROUND(1.14) ,ROUND(1.66);
-- ROUND(x,y)返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位。
SELECT ROUND(1.38,1) ,ROUND(1.38,0), ROUND(232.38,-1) ,ROUND(232.38,-2);
ROUND(1.38, 1)保留小数点后面1位,四舍五入的结果为1.4;ROUND(1.38, 0)保留小数点后面0位,即返回四舍五入后的整数值; ROUND(23.38, -1)和ROUND(232.38,-2)分别保留小数点左边1位和2位。
提示y值为负数时,保留的小数点左边的相应位数直接保存为0,不进行四舍五入。