前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
MySQL函数
一、MySQL函数简介
函数表示对输入参数值返回一个具有特定关系的值 ,MSOL提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常用到各种函数。通过对数据的处理,数据库功能可以变得更加强大,可以更加灵活地满足不同用户的需求。各类函数从功能方面主要分为++数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数++
二、数学函数
1、绝对值函数ABS(x)和返回圆周率的函数PI()
**ABS(X)**返回X的绝对值;
sql
mysql> select ABS(2),ABS(-3.3),ABS(-33);
# 返回------ 2 3.3 33
**PI()**返回圆周率π的值。默认显示小数位6位;
sql
mysql> select pi();
# 返回------ 3.141593
2、平方根函数SQRT(X)和求余函数MOD(X,Y)
**SQRT(X)**返回非负数x的二次方根;
sql
mysql> select sqrt(9),sqrt(40),sqrt(-40);
# 返回------ 3 6.324555320336759 NULL
**MOD(X)**返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用;
sql
mysql> select mod(31,8),mod(234,10),mod(45.5,6);
# 返回------ 7 4 3.5
3、获取整数的函数CEIL(X),CEILING(X)和FLOOR(X)
CEIL(X)和CEILING(X) 的意义相同,返回**++不小于x的最小整数值++**,返回值转化为一个BIGINT
sql
mysql> select ceil(-3.35),ceiling(3.35);
# 返回------ -3 4
FLOOR(x) 返回**++不大于x的最大整数值++**,返回值转化为一个BIGINT
sql
mysql> select floor(-3.35),floor(3.35);
# 返回------ -4 3
4、获取随机数的函数RAND()和RAND(X)
RAND(x) 返回一个随机浮点值v,范围在0到1之间(0≤v≤1.0)。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。
sql
mysql> select rand(),rand(),rand();
# 返回------ 0.4599793697334634 0.9860691958908636 0.5504079009875729
不带参数的RAND()每次产生的随机数值是不同的;
sql
mysql> select rand(10),rand(10),rand(11);
# 返回------ 0.6570515219653505 0.6570515219653505 0.907234631392392
可以看到,当 RAND(x)的参数相同时,将产生相同的随机数,不同的x产生的随机数值不同。
5、函数ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y)
ROUND(x) 返回最接近于参数x的整数 ,对x值进行四舍五入。
sql
mysql> select round(-1.14),round(-1.67),round(1.14),round(1.66);
# 返回------ -1 -2 1 2
ROUND(x,y) 返回最接近于参数x的数,其值保留到小数点后面y位 ,若y为负值,则将保留x值到小数点左边y位。
sql
mysql> select round(1.38,1),round(1.38,0),round(232.38,-1),round(232.38,-2);
# 返回------ 1.4 1 230 200
TRUNCATE(x,y) 返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。
sql
mysql> select truncate(1.31,1),truncate(1.99,1),truncate(1.99,0),truncate(19.99,-1);
# 返回------ 1.3 1.9 1 10
6、符号函数SIGN(X)
SIGN(x) 返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1
sql
mysql> select sign(-21),sign(0),sign(21);
# 返回------ -1 0 1
7、幂运算函数POW(X,Y)、POWER(X,Y)和EXP(X)
POW(x,y) 或者 POWER(x,y) 函数返回x的y次乘方的结果值
sql
mysql> select pow(2,2),power(2,2),pow(2,-2),power(2,-2);
# 返回------ 4 4 0.25 0.25
**EXP(x)**返回e的x乘方后的值
sql
mysql> select exp(3),exp(-3),exp(0);
# 返回------ 20.085536923187668 0.049787068367863944 1
8、对数运算函数 LOG(x)和 LOG10(x)
LOG(x) 返回x的自然对数 ,x相对于基数e的对数
sql
mysql> select log(3),log(-3);
# 返回------ 1.0986122886681098 NULL
**LOG10(x)**返回x的基数为 10的对数
sql
mysql> select log10(2),log10(100),log10(-100);
# 返回------ 0.3010299956639812 2 NULL
9、角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)
RADIANS(x) 将参数x由角度转化为弧度
sql
mysql> select radians(90),radians(180);
# 返回------ 1.5707963267948966 3.141592653589793
DEGREES(x) 将参数x由弧度转化为角度
sql
mysql> select degrees(pi()),degrees(pi() / 2);
# 返回------ 180 90
10、正弦函数 SIN(x)和反正弦函数 ASIN(x)
SIN(x) 返回x正弦,其中x为弧度值
sql
mysql> select sin(1),round(sin(pi()));
# 返回------ 0.8414709848078965 0
**ASIN(x)**返回x的反正弦,即正弦为x的值。若x不在-1到1的范围之内,则返回 NULL。
sql
mysql> select asin(0.8414709848078965),asin(3);
# 返回------ 1 NULL
11、余弦函数 COS(x)和反余弦函数 ACOS(x)
COS(x) 返回x的余弦,其中x为弧度值
sql
mysql> select cos(0),cos(pi()),cos(1);
# 返回------ 1 -1 0.5403023058681398
ACOS(x) 返回x的反余弦,即余弦是x的值。若x不在-1~1的范围之内,则返回 NULL
sql
mysql> select acos(1),acos(0),round(acos(0.5403023058681398));
# 返回------ 0 1.5707963267948966 1
12、正切函数、反正切函数和余切函数
TAN(x) 返回x的正切,其中x为给定的弧度值;
sql
mysql> select tan(0.3),round(tan(pi()/4));
# 返回------ 0.30933624960962325 1
**ATAN(x)**返回x的反正切,即正切为x的值
sql
mysql> select atan(0.30933624960962325),atan(1);
# 返回------ 0.3 0.7853981633974483
三、字符串函数
1、计算字符串字符数与长度
CHAR LENGTH(str) 返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。
sql
mysql> select char_length('date'),char_length('egg');
# 返回------ 4 3
LENGTH(str) 返回值为字符串的字节长度 ,使用utf8 (UNICODE的一种变长字符编码,又称万国码 )编码字符集时,一个汉字是3字节,一个数字或字母算1字节。
sql
mysql> select length('date'),length('egg');
# 返回------ 4 3
2、合并字符串函数CONCAT(s1,s2)、CONCAT_WS(x,s1,s2,...)
未完...