MySQL函数(数字函数)

@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;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值