MySQL常用函数

•  数学函数
•  字符串函数
•  日期与时间函数
•  条件判断函数
•  加/解密函数
•  其他函数

一、数学函数

函数

说明

ABS(X)

返回绝对值

pi()

返回圆周率
Sqrt(expr)返回表达式的平方根
MOD(x,y)求余函数 select MOD(31,8)结果为7

CEIL(X)或CEILING(X)

向上取整,大于或等于X的最小值,CEIL(5.4)=6

FLOOR(X)

向下取整,小于或等于X的最大值,FLOOR(5.8)=5

Rand()或Rand(x)

返回0-1 的隧机 float值

Round(x)、ROUND(x,y)

将数字表达式四含五入到指定的长度或精度, ROUND(1.12)=1,

ROUND(1.66)=2, ROUND(1.23,1)=1.2, ROUND(234.42,-1)=230

TRUNCATE(x,y)返回舍去小数点后y位的数字x,TRUNCATE(1.99,1)=1.9
SIGN(x)返回参数符号,x值为负,0,正时的返回值为-1,0,1
POW(x,y)、POWER(x,y)x^y
EXP(x) 、LOG(x) 、Sin(x) 、 Cos(x)、Tan(x) 和 Cot(x) 四个三角函数和 Asin(x) 、 Acos(x)、 Atan(x) 和 Atn2(x)四个反三角函数这些就不多说了

二、字符串函数

函数

说明

CHAR_LENGTH(str)、LENNGTH(str)

返回字符串长度, CHAR_LENGTH('date')=4

CONCAT(str1,str2...)

合并字符串

INSERT(s1,x,len,s2)

替换函数,将字符串s1从x位置开始的len个字符替换为字符串s2
LOWER(X)字母转为小写函数,X转换成小写
UPPER(X)字母转为大写函数,X转换成大写

Left(str,n)

返回字符串中从左边开始n个数的字符,LEFT(‘qwertyu’,5)=qwert
Right(str,n)返回字符串中从右边开始n个数的字符,RIGHT(‘qwertyu’,3)=tyu
LPAD(s1,len,s2)

返回字符串s1,在其左边填充字符串s2直到长度为len

LPAD('hello',4,'??')=hell,LPAD('hello',10,'??')=?????hello

RPAD(s1,len,s2)

返回字符串s1,在其右边填充字符串s2直到长度为len

RPAD('hello',4,'??')=hell,RPAD('hello',10,'??')=hello?????

LTRIM(s)

把s的左边空格字符串删除

RTRIM(s)

把s的右边空格字符串删除

TRIM(s)

把s两侧的空格字符串删除

TRIM(s1 FROM s)

删除字符串s中两侧的字符串s1

trim('xy' FROM 'xyxboxyokxxyxy')='xboxyokx'

REPEAT(s,n)重复生成字符串,REPEAT('Sql',3)='SqlSqlSql'
SPACE(n)返回一个有n个空格组成的字符串
REPLACE(s,s1,s2)

将字符串s2替换掉字符串s中所有的字符串s1

REPLACE('xxx.mysql.com','x','w')='www.mysql.com'

STRCMP(s1,s2)

比较字符串大小,s1=s2返回0,s1<s2返回-1,s1>s2返回1

STRCMP('txt','txt2')=-1

SUBSTRING(s,n,len)

截取函数,从字符串s中返回一个长度为len字符相同的子字符串,起始于位置n。若n是一个负值,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。

MID(s,n,len)

MID作用与SUBSTRING是一样的

LOCATE(str1,str)

POSITION(str1 IN str)

INSTR(str,str1)

匹配子字符串str1在str中的开始位置,三个函数作用相同

LOCATE('ball','football')=5,POSITION('ball' IN 'football')=5

INSTR('football','ball')=5

Reverse(str)

返回字符串str的逆序,REVERSE('abc')='cba'


三、日期与时间函数

函数

说明

CURDATE()、

CURRENT_DATE()

两个函数都是返回当前的日期,格式有‘YYYY-MM-DD’或‘YYYYMMDD’

CURTIME()

CURRENT_TIME()

获取当前时间,以‘HH:MM:SS’或'HHMMSS'格式返回

CURRENT_TIMESTAMP()

LOCALTIME()

NOW()

SYSDATE()

获取当前日期和时间值,格式为‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS
MONTH(date)返回date对应的月份,范围值1-12,MONTH('2016-02-13')=2
DAYOFWEEK(date)

返回date对应一周中的索引位置,1:周日,2:周一...7:周六

DAYOFWEEK('2016-02-14')=1

WEEKDAY(date)

返回date对应的工作日索引,0:周一,1:周二...6:周日

DAYOFWEEK('2016-02-14')=6

WEEK(date [, mode])

WEEKOFYEAR(date)

返回日期date是一年中的第几周

WEEK('2011-02-20', 3)=7,WEEKOFYEAR('2011-02-20')=7

DAYOFYEAR(date)

返回日期date是一年中的第几天,范围1-366

DAYOFYEAR('2016-02-20')=51

DAYOFMONTH(date)

返回日期date是一个月中的第几天,范围1-31

DAYOFMONTH('2016-02-20')=20

YEAR(date)

返回date中的年份,范围1970-2069

YAER('11-02-03')=2011,YEAR('96-02-03')=1996

EXTRACT(type FROM date)

获取日期的指定值函数

TIME_TO_SEC(time)

将时间转化为秒数,公式:小时*3600+分钟*60+秒

select TIME_TO_SEC(‘23:23:00’)=84180

SEC_TO_TIME(seconds)

将秒数转为时间格式

select SEC_TO_TIME(2345)=00:39:08

ADDTIME(date,expr)

将expr值添加到date,date是一个日期或日期时间表达式,expr是一个时间表达式

SUBTIME(date,expr)

将date减去expr值,date是一个日期或日期时间表达式,expr是一个时间表达式

DATEDIFF(date1,date2)

返回 date 1-date2的天数值,date1与date2可为日期或日期时间表达式

DATEDIFF(2010-12-31 23:59:59,2010-12-30)返回值为1;

DATEDIFF(2010-11-30 23:59:59,2010-12-31)返回值为-31。

DATE_FORMAT(date, format)

根据 format指定的格式显示date值。主要 format格式如表6.3所示

GET_FORMAT( val_type, format_type)

返回日期时间字符串的显示格式, val_type表示日期数据类型,包括DATE、 DATETIME和TME; format_type表示格式化显示类型,包括EUR、INTERVAL、ISO、JS、USA。 GET_FORMAT根据两个值类型组合返回的字符串显示格式如表64所示。一般与DATE_FORMAT(date, format)一起使用


 四、条件判断函数

条件判断函数也称为控制流程函数,根据满足的条件的不同,执行相应的流程。 MYSQL中进行条件判断的函数有IF、 IFNULL和CASE。

函数

说明

IF(expr,v1,v2)

如果表达式expr为true返回v1,否则返回v2

IF(1>2,2,3)=3

IFNULL(v1,v2)

如果v1不为NULL,返回v1,否则返回v2

IFNULL(1,2)=1,IFNULL(NULL,10)=10

CASE expr WHEN v1 THEN r1

 [WHEN v2 THEN r2][ELSE rn] END

该函数表示,如果expr值等于某个vn,则返回对应位置THEN后面的结果。如果与所有值都不相等,则返回ELSE后面的rn

SELECT

  case 2 WHEN 1 THEN ‘one’ WHEN 2 THEN ‘two’ ELSE ‘more’

END==>'two'


五、加/解密函数

函数

说明

PASSWORD(str)

加密函数,把明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL:

SELECT PASSWORD ('newpwd')

=*1FA85AA204CC12B39B20E8FLE839D11B3F9E6AA4

MD5(str)

加密函数,为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的二进制字串形式返回,若参数为NULL,则会返回NULL:

MD5('mypwd')=318bcb4be908d0da6448a0db76908d78

ENCODE(str; swd str)

加密函数,使用 psd_str作为密码,加密str。使用 DECODEO解密结果,是一个和str长度相同的二进制字符串。

DECODE( crypt_str;pswd_str)

使用pswd_str作为密码,解密加密字符串 crypt_str, crypt_str是由 ENCODEO返回的字符串。


六、其它函数

函数

说明

FORMAT(x,n)

将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回。若n为0,则返回结果函数不含小数部分。

CONVERT(...USING...)

带有USING的 CONVERT()函数被用来在不同的字符集之间转化数据。

CAST(x AS type)、

CONVERT(x,type)

这两个函数都是将一个类型的值转换为另一个类型的值,可转换的type有: BINARY、CHAR(n)、DATE、TIME、 DATETIME、 DECIMAL、 SIGNED、 UNSIGNED

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值