@MySQL中的函数包括数学函数,字符串函数,日期和时间函数,条件判断函数, 系统信息函数和加密函数。
MySQL函数
数学函数
数学函数主要用来处理数值数据,主要的数学函数有绝对值函数,三角函数(包括正函数,余函数,正切,余切函数)
对数函数,随机函数,有错误产生时,数学函数将会返回空值NULL.
1.绝度值函数ABS(X)和返回圆周率的函数PI()
ABS(x)返回x的绝对值
SELECT ABS(25);
2.PI()
Pi()返回圆周率π的值。默认的为6位数
SELECT PI();
平方根函数SQRT(X)和求余函数MOD(x,y)
1.SQRT(X)
SQRT(x)返回非负数的第二次方根
SELECT SQRT (10);
2.MOD(x,y)
MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,返回除法运算后的精确余数
SELECT MOD(2,5);
获取整数的函数CEIL(X),CEILING(X),CEILING(X)和FLOOR(X)
1.CEIL(X)和CEILING(x)
CEIL(X)和CEILING(x)的意义相同,返回不小于x的最小整数值,返回值转化为一个BIGINT.
SELECT CELL(-3.35),CEILING(3.35);
获取随机数的函数RAND() 和RAND(x)
RAND(x)返回一个随机浮点值v,范围0~之间(0<=v<=1.0).
如果指定一个整数参数x,它被用作种子值,用来产生重复序列
SELECT RAND();
RAND(x)函数产生随机数,相同参数,随机数相同,反之不同
SELECT RAND (10),RAND(10),RAND(11);
函数ROUND(X),ROUND(X,Y)和TRUNCATE(X,Y)
1.ROUND(X)
ROND(x)返回最接近参数x的整数,对x值进行四舍五入。
--取整函数ROUND(X)
SELECT ROUND(3.1);
2.ROUND(X,Y)
ROUND(X,Y)返回最接近于参数x的数,其值保留到小数点后面y位,如果y位为负数保留x值到小数点左边y位
- 四舍五入ROUND(X,D)
SELECT ROUND(3.1415,3);
3.TRUNCATE(X,Y)
TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x。如果y的值为0,结果不带有
小数点或不带有小数部分。如果y设为负数,则截去x小数点左起第y位开始后面所有低位的值
-- 取整函数 TRUNCATE(x,D)(不进行四舍五入)
SELECT TRUNCATE (3.1415,3);
符号函数 SIGN(X)
返回参数的符号,x的值为负,零或正数返回结果依次为-1,0或1
SELECT SIGN(-21),SIGN(0),SIGN(21);
幂运算函数pow(x,y) power(x,y)和EXP(X)
1.POW(x,y)和power(x,y)
pow(x,y)或者power(x,y)函数返回x的y次乘方结果值
SELECT POW(2,2),POWER(2,-2),POWER(2,-2);
使用EXP函数计算e的乘方的值
SELECT EXP(3),EXP(-3),EXP(0);
对数运算函数LOG(x)和LOG10(X)
1.LOG(X)
LOG(X)返回x的自然对数,x相对于基数e的对数。
SELECT LOG(3),LOG(-3);
LOG10(X)返回x相对于基数10的对数
SELECT LOG10(2),LOG10(100),LOG10(-100);
角度与弧度相互转换的函数RADIANS(x)和DEGREES(X)
1.RADIANS(x)
RADIANS(x)将参数x由角度转换为弧度。
SELECT RADIANS(90),RADIANS(180);
2.DEGREES(x)
DEGREES(x)将参数x由弧度转化为角度。
SELECT DEGREES(PI()), DEGREES(PI()/2);
正弦函数SIN(x)反正弦函数ASIN(X)
1.SIN(x)
SIN(x)返回x正弦值,其中x为弧度值
SELECT SIN(1),ROUND(SIN(PI());
2.ASIN(x)
ASIN(x)返回x的反正弦,正弦为x值。如果x不在-1到1的范围之内,则返回NULL.
SELECT ASIN(0.8414709848078965), ASIN(3);
余弦函数COS(x)和反余弦函数ACOS(x)
1.COS(x)
COS(x)返回x的余弦,其中x为弧度值。
SELECT COS(0),COS(PI()),COS(1);
2.ACOS(x)
ACOS(x)返回x的反余弦,余弦是x的值。
SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));
正切函数,反正切函数和余切函数
1.正切函数TAN(X)
TAN(X) 返回x的正切,其中x为给定的弧度值。
SELECT TAN(0,3), ROUND(TAN(PI()/4);
2.反正切函数ATAN(X)
ATAN(X)返回x的反正切,正切为x值。
SELECT ATAN(0.309336249960962325),ATAN(1);
3.余切函数COT(x)
COT(x) 返回x的余切
SELECT COT(0.3),1/TAN(0.3),COT(PI()/4);
字符串函数
MySQL中的字符串有计算字符串长度函数,字符串合并函数,字符串替换函数,字符串比较函数,查找指定字符串位置函数
计算字符串字符数和字符串长度的函数
1.CHAR_LENGTH(str)
CHAR_LENGTH(str)返回值为字符串str所包含的字符个数。一个多字字符算作一个单字符。
SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg');
LENGTH(str)
LENGTH(str)返回值为字符串的字节度,使用utf8(UNICODE的一种变长字符编码,又叫万国码)一个汉字3个字节,一个数字
或者字母一个字节,gbk;一个汉字2个字节
SELECT LENGTH('date'),LENGTH('egg');
合并字符串函数concat(s1,s2,。。)concat_ws(x,s1,s2,..)
1.CONCAT(S1,S2)
CONCAT(S1,S2...)返回结果为连接参数产生的字符串,或许有一个或多个参数。任何一个参数为NULL,则返回值为NULL.如果使用参数为非二进制字符串则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
SELECT CONCAT('My SQL','5.7'),CONCAT('My',NULL,'SQL');
2.CONCAT_WS(x,s1,s2,...)
SELECT CONCAT_WS('-','1st','2nd','3rd'),CONCAT_WS('*','1st',NULL,'3rd');
SELECT CONCAT_WS(':','2','30','54');
替换字符串的函数INSERT(s1,x,len,s2)
INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代len字符。如果x超过
字符串长度,那么返回值为原始字符串。如果len长度大于其他字符串的长度,就从位置x开始替换,如果任何
一个参数为NULL,则返回为null。
SELECT INSERT('MORING',1,3,'LHK');
字母大小 写转换函数
1.LOWER(str)和LCASE(str)可以将字符串str中的字母字符全部转换成小写字母。
SELECT LOWER('BEAUTIFUL'), LCASE('Well')
2.UPPER(str)或者UCASE(str)
UPPER(str)UCASE(str)可以将字符串str中的字母字符全部转换成大写字母。
SELECT UPPER('black'),UCASE('Black');
获取指定长度的字符串的函数LE发条(s,n)和RIGHT(s,n)
1.LEFT(s,n)
LEFT(s,n)返回字符串s开始的最左边的n个字符。
SELECT LEFT('football',5);
2.RIGHT(s,n)
RIGHT(S,N)返回字符串中右边的n个字符
SELECT RIGHT('football',4);
填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
1.LPAD(s1,len,s2)
LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。如果s1的长度大于len,返回值被缩短到len字符
SELECT LPAD('hello',4,'??'),LPAD('hello',10,'??');
2.RPAD(s1,len,s2)
RPAD(s1,len,s2)返回字符串s1,其右边被字符串s2填补到len字符长度。
SELECT RPAD('hello',4,'?'),RPAD('hello',10,'?');
删除空格的函数LTRIM(s),RTRIM(s)和TRIM(s)
1.LTRIM(S)
LTRIM(s)返回字符串s,字符串左侧空格字符串被删除。
SELECT '(book)',CONCAT('(',LTRIM('book'),)')');
2.RTRIM(S)
RTRIM(s)返回字符串s,字符串 右侧被空格字符删除
SELECT'(book)',CONCAT('(',RTRIM(' book '),')');
3.TRIM(S)
TRIM(S)删除字符串s俩侧的空格
SELECT'(book)',CONACT('(',TRIM('book'),'),');
删除指定字符串的函数TRIM(s1FROM s)
SELECT(s1 FROM s)删除字符串s中俩端所有的字符串s1.s1为可选择,在未指定情况下删除空格。
SELECT TRIM('xy' FROM 'xyxboxyokxxyxy');
重复生成字符串的函数REPEAT(s,n)
SELECT REPEAT('mysql',3);
空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)
1.SPACE(n)
SPACE(n)返回一个由n个空格组成的字符串。
SELECT CONCAT('(',SPACE(6),')');
2.REPLACE(s,s1,s2)
REPLACE(s,s1,s2)使用字符串s2替换字符串s中所有的字符串s1。
SELECT REPLACE(‘xxx.mysql.com','x','w');
比较字符串大小的函数STRCMP(s1,s2)
SELECT STRCMP('txt','TXT2'),STRCMP('TXT2','TXT'),STRCMP('TXT','TXT');
获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
1.SUBSTRING(s,n,len)
SELECT SUBSTRING('breakfast',5) AS coll,
SUBSTRING('breakfast',5,3) AS col2,
SUBSTRING('lunch',-3) AS col3,
SUBSTRING('lunch',-5,3) AS col4;
2.MID(s,n,len)
MID(s,n,len)与SUBSTRING(s,n,len)
SELECT MID('breakfast',5) as coll,
MID('breakfast',5,3) as col2,
MID('lunch',-3) as col3,
MID('lunch',-3,3) as col4;
匹配子串开始位置的函数
LOCATE(str1,str),POSITION(str1 IN Str)和(str1,str)三个函数作用相同,返回子字符串str1在字符串str中的开始位置
SELECT LOCATE('BALL','football'),POSITION('ball'IN'football'),INSTR('football','ball');
字符串逆序的函数REVERSE(S)
REVERSE(S)将字符串s反转,返回的字符串的顺序和s字符串顺序相反
SELECT REVERSE('abc);
返回指定位置的字符串的函数
SELECT ELT(3,'1st','2nd','3rd'),ELT(3,'net','os');
返回指定字符串位置函数FIELD(s,s1,s2),。。。)
SELECT FIELD('Hi','hihi','hey','hi','bas') as coll,
FIELD('Hi','Lo','Hey','hilo','foo') as col2;
返回子串位置的函数FIND_IN_SET(s1,s2)
SELECT FIND_IN_SET('hi','hihi,hey,hi,bas');
选取字符串的函数MAKE_SET(X,S1,S2,..)
SELECT MAKE_SET(1,'a','b','c') as col1,
MAKE_SET(1 | 4,'hello','nice','world') as col2,
MAKE_SET(1 | 4,'hello','nice',NULL,'world') as col3,
MAKE_SET(0,'a','b','c') as col4;