第6章mysql函数

MySQL函数

MySQL中的函数包括:

  • 数学函数,
  • 字符串函数,
  • 日期和时间函数、
  • 条件判断函数,
  • 系统信息函数和加密函数等其他函数

内容导读

  • 了解什么是MySQL的函数
  • 掌握各种款等函数的用法
  • 掌握各种字科串函数的用法
  • 掌握时间和日期函数的用法
  • 掌握条件函数的用法
  • 掌握系统信息函数的用法
  • 掌握加密函数的用法
  • 掌握其他特殊函数的用法

数学函数

数学函数主要用来处理数值数据,主要的数学函数有:

  • 绝对值函数,
  • 三角函数,包括正弦函数,余弦函数,正切函数,余切函数等,对数函数,随机数函数等.
    在有错误产生时,数学函数将会返回空值NULL.

绝对值函数 ABS(x)和返回圆周率的函数 Pl()

SELECT ABS(2),ABS(-3.3),ABS(-33);

SELECT pi();

平方根函数 SQRT(x)和求余函数 MOD(x,y)


SELECT SQRT(49),SQRT(2),SQRT(4);

SElECT MOD(31,8),MOD(234,10),MOD(45,5);

获取整数的函数CEIL(x),CEILING(x)和FLOOR(x)

CEIL(x)和 CEILING(x)意义相同退回不小于x的最小整数值返回值转化为一个BIGlNT。

FLOOR(x)返回不大于x的最大整数值返回值转化为一个BJGINT.

SELECT CEIL(-3.35),CEILING(3.35);

SELECT FLOOR(-3.35),FLOOR(3.35); 

获取随机数的函数RAND()和RAND(x)

SELECT RAND(),RAND(),RAND(); 

SELECT RAND(10),RAND(10),RAND(l1); 

四舍五入函数 ROUND(x)、 ROUND(x,y)和 TRUNCATE(x,y)

ROUND(x)返回最接近于参数 x 的整数,对 x 值进行四舍五入

ROUND(x,y)返回最接近于参数 x 的数,其值保留到小放点后面 y 位,若 y 为负值,则将保留
x值到小数点左边y位。

SELECT ROUND(-1.14),ROUND(1.67),ROUND(1.11),ROUND(l.66); 

SELECT ROUND(l.38,1),ROUND(1.67,0),ROUND(232.38,-1),round(232.38,-2);

TRUNCATE(x,y)返回被舍去至小数点后 y 位的数字 x。若 y 的值为 0,则结果不带有小数点
或不带有小数部分.若 y 设为负数,则截去(归零) X 小数点左起第 y 位开始后面所有低位的值。

mysql> SELECT TRUNCATE(1.31,1),TRUNCATE(199.99,-1);

符号函数SIGN(x)
SIGN(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1。

SELECT SIGN(-21),SIGN(0),SIGN(21); 

幕运算函数POW(x,y),POWER(x,y)和EXP(x)

POW(x,y)或者POWER(x,y)函数返回x的y次乘方的结果值。


SELECT POW(2,2),POWER(2,2),POW(2,-2),POWER(2,-2);

EXP(x)返回e的x乘方后的值。

 SELECT EXP(3),EXP(-3),EXP(0);

对数运算函数LOG(x)和 LOG10(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)

RADIANS(x)将参数x由角度转化为弧度。

SELECT RADIANS(90),RADIANS(J80); 

DEGREES(x)将参数 x 由弧度转化为角度。

SELECT DEGREES(PI()), DEGREES(Pl() / 2); 

正弦函数 SIN(x)和反正强函数 ASIN(x)

SIN(x)返回 x 正弦,其中 x 为弧度值。

SELECT SIN(l), ROUND(SIN(PI())); 

ASIN(x)返回 x 的反正弦,即正弦为 x的值.若 x不在- I 到 l 的范围之内 ,则返回 NULL

SELECT ASCN(0.8414709848078965), ASIN(3);

余弦函数 COS(x)和反余弦函数 ACOS(x)

COS(x)返回 x的余弦,其中 x为弧度值。

SELECT COS(0),COS(PI()),COS(1); 

SELECT ACOS(l),ACOS(O),

正切函数、 反正切函数和余切函数

TAN(x)返回 x 的正切,其中 x 为给定的弧度值。

ATAN(x)返回 x 的反正切,即正切为 x 的值。

字符串函数

MySQL 中字符串函数有:

  • 计算字符串长度 函数、
  • 字符串合并函敛、
  • 字符串替换函数、
  • 字符串比较函数、
  • 查找指定字符串位置函数等.

计算字符串字符数的函数和字符串长度的函数

CHAR_LENGTH(str)返回值为字符串 str 所包含的字符个数. 一个多字节字符算作一个单字符。

SELECT CHAR_LENGTH('date');

LENGTH(str)返回值为字符串的字节长度

SELECT LENGTH('date');

**合并字符串函数 CONCAT(s1,s2,……),CONCAT(s1,s2,……) **

CONCAT(S1,s2…)返回结果为连接参数产生的字符串,或许有一个或多个参数。如有任何一个参数为NULL,则返回值为NULL。如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

SELECT CONCAT('MySQL','5.6');

CONCAT_WS(x,sl,s2,……),CONCAT_WS代表CONCAT WITH Separator是CONCAT()的特殊形式.第一个参数x是其他参数的分隔符

SELECT CONCAT_WS('-','1','2','3');

替换字符串的函数INSERT(s1,x,len,s2)
INSERT(S1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如果x超过字符串长度,则返回值为原始字符串。假如len的长度大于其他字符串的长度,则从位置x开始替换。若任何一个参数为NULL,则返回值为NULL。

SELECT INSERT('Quest', 2, 4,'What') AS coll;

–将"Quest"第2个字符开始长度为4的字符串替换为what

字母大小写转换函数

LOWER(str)的或者LCASE(str)可以将字符str中的字部字符全部转换成小写字母

select LOWER('AAA'),LCASE('BBB');

UPPER(str)或者UCASE(Str)可以将字符串str中的字母字符全部转换成大写字母。

select UPPER('aaa'),UCASE('bbb');

获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

LEFT(s,n)返回字符串s开始的最左边n个字符

RIGHT(s,n)返回字符串str最右边n个字符。

SELECT LEFT('football',4);

SELECT RIGHT('football',4);

填充字符串的函数LPAD(剖,len,s2)和 RPAD(剖,len,s2)
LPAD(S1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。假如sl的长度大于len,则返回值被缩短至len字符

RPAD(s1,len,s2)返回字符串sl,其右边被字符串s2填补至len字符长度. 假如字符串sl的长度大于len,则返回值被缩短到len字符长度。

SELECT LPAD('hello',4,'aa',LPAD('hello',10,'aa');

SELECT RPAD('hello',4,'aa',RPAD('hello',10,'aa');

删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

LTRIM(s)返回字符串s,字符串左侧空格字符被删除。
RTRIM(s)返回字符串s,字符串右侧空格字符被删除。
TRIM(s)删除字符串s两侧的空格

select LTRIM(' book ');
select RTRIM(' book ');
select TRIM(' book ');

**删除指定字符串的函数TRIM(s1FROM s) **

TRIM(sl FROM s)删除字符串s中两端所有的子字符串sl。sl为可选项,在未指定情况下, 删除空格。

SELECT TRJM('xy' FROM 'xyxboxyok:xxyxy');

**重复生成字符串的函数REPEAT(s,n) **

REPEAT(s,n)返回一 个由重复的字符串s组成的字符串, 字符串s的数目等于n。若n<=O,则返回一个空字符串。若s或n为NULL,则返回NULL

SELECT REPEAT('MySQL',3);

空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

SPACE(n)返回一个由n个空格组成的字符串 .

select SPACE(6);

REPLACE(s,s 1,s2)使用字符巨归 s2替代字符串s中所有的字符串sl。

SELECT REPLACE('xxx.mysql.com','x','w');

比较字符串大小的函数STRCMP(s1,s2)

STRCMP(sl,s2)若所有的字符串均相同,则返回0;
若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1。

SELECT STRCMP('txt','txt2'),STRCMP('txt2','txt'), STRCMP('txt','txt');

获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)

SUBSTRING(S,n,len)带有len参数的格式,从字符串s返回一个长度同len字符相同的子字符串,起始于位置n。也可能对n使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。

SELECT SUBSTRING('breakfast' ,5) AS coll;

MID(s,n,Ien)与SUBSTRING(s,n,len)的作用相同。

SELECT MID('breakfast' ,5) AS coll;

匹配子串开始位置的函数

LOCATE(str1,str),POSITION(strl IN str)和INSTR(str, strl)3个函数作用相同,
返回子字符串 str1在字符串str中的开始位置。

SELECT LOCATE('ball','football'),
POSITION('ball' in 'football'),
INSTR('football', 'ball');

字符串逆序的函数REVERSE(s)

REVERSE(S)将字符串s反转,返回的字符串的顺序和s字符串顺序相反。

SELECT REVERSE('abc'); 

返回指定位置的字符串的函数
ELT(N,字符串1,字符串2,字符串3.…,字符串N)若N=1,则返回值为字符串1,若N=2,则返回值为字符串2,以此类推。若N小于1或大于参数的数目,则返回值为NULL。

SELECT ELT(3,'lst','2nd','3rd');

返回指定字符串位置的函数 FIELD(s,s1 ,s2,…)
FIELD(S,s1,s2.…)返回字符串s在列表sl,s2……中第一次出现的位置,在找不到s的情况下,返回值为0。如果s为NULL,则返回值为0,原因是NULL不能同任何值进行同等比较。

SELECT FIELD('Hi','hihi','Hey','Hi','bas')as coll;

返回子串位置的函数 FIND_IN_SET(s1 ,s2)

FIND_IN_SET(S1,,s2)返回字符串sl在字符串列表s2中出现的位置,字符串列表是一个由多个逗号‘,分开的字符串组成的列表。如果sl不在s2或s2为空字符串,则返回值为0.如果任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个返号‘,时将无法正常运行。

SELECT FIND_IN_SET('Hi','hihi','HeyHi','Hi','bas')as coll;

选取字符串的函数MAKE_SET(x,s1,s2,…)
MAKE_SET(x,sl,s2,…)返回由x的二进制数指定的相应位的字符串组成的字符串, sl对应比特l, s2对应比特01,以此类推。sI , s2 …中的NU LL值不会被添加到结果中。

SELECT MAKE_SET(l,'a','b');

##日期和时间函数##

获取当前日期的函数和获取当前时闸的函数

CURDATEO和CURRENT_DATEO函数作用相同,将当前日期按照‘YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数在字符串或是数字语境中而定。

SELECT CURDATE(),CURRENT_DATE(),CURDATE()+0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值