MySQL基础——函数

1、数学函数 

表达式说明
ABS(x)绝对值函数
PI()返回圆周率的函数
SQRT(x)平方根函数
MOD(x, y)求余函数
CEIL(x) / CEILING(x)向上取整
FLOOR(x)向下取整
RAND(x)返回一个随机浮点数,范围在0到1之间
ROUND(x)四舍五入,只保留整数部分
ROUND(x,y)四舍五入,保留小数点后面y位
SIGN(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0 或 1 
POW(x,y)/POWER(x,y)返回x的y次方的结果值
LOG(x)返回x的自然对数,x相对于基数e的对数
RANDIANS(x)将参数x由角度化为弧度
DEGEREES(x)将参数x由弧度化为角度
SIN(x)返回正弦,其中x为弧度值
ASINx的反正弦
COS(x)返回x的余弦
ACOS(x)返回x的反余弦

TAN(x)

正切,x为弧度值
ATAN(x)反正切, x为正切的值
COT(x)余切

2、字符串函数

表达式说明
CHAR_LENGTH计算字符串字符个数
CONCAT(s1,s2,...)

连接字符串。返回结果为连接参数产生的字符串,允许有一个或多个参数,如有任何一个参数为NULL,

则返回值为NULL

CONCAT_WX(x, s1, s2, ....)连接字符串,第一个参数x为连接符。用法同上
INSERT(s1, x, len, s2)

返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如x超过字符串长度,

则返回原始字符串。如len长度大于其它字符串的长度,则从位置x开始替换。任何一个参数为NULL,则返回NULL

LOWER(str) / LCASE(str)将字符串中所有字母字符串转为小写
UPPER(str) / UCASE(str)将字符串中的字母字符串全部转换成大写
LEFT(s, n)返回字符串最左边的n个字符
RIGHT(s, n)返回字符串最右边的n个字符
LPAD(s1, len, s2)返回字符串s1, 其左边由字符串s2填补到len字符串长度。如s1的长度大于len,则返回值被缩短至len字符
RPAD(s1, len, s2)

返回字符串s1, 其右边字符串s2填补至len字符串长度。如字符串s1的长度大于len,则返回被

缩短得到len字符串长度

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

TRIM(s)

删除字符串s两侧的空格
TRIM(s1, FROM s)删除字符串s中两端所有的字符串s1,s1为可选,在未制定情况下,删除空格
REPEAT(s, n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n. 若n n<=0,则返回一个空字符串。若 s 或 n 为NULL,则返回 NULL
SPACE(n)返回一个由 n 个空格组成的字符串
REPLACE(s,s1,s2)使用字符串s2 代替字符串s中的所有字符串s1
STRCMP(s1,s2)

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

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

LOCATE(str1、str)

/ POSITION(str1 IN str)

/ INSTR(str,str1)

返回字符串str1 在字符串 str中的开始位置
REVERSE(s)将字符串s反转
ELT(N, 字符串1,字符串2,字符串3,字符串N) 若N = 1 ,则返回值为字符串1,若N = 2则返回值为字符串2, 以此类推

FIELD(s,s1,s2,....)

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

FIND_IN_SET(s1,s2)

返回字符串s1 在字符串s2 中出现的位置,字符串列表由多个逗号分考的字符串组成的列表,如果 s1 不在 s2 或 s2 为空字符串,则返回值为0.如任一参数为NULL,则返回NULL。这个汉书在第一个参数包含一个逗号时将无法正常运行。

 

 

 3、日期和时间函数

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,具体格式根据函数在字符串或是数字语境中而定
UNIX_TIMESTAMP(date)

若无参数调用,则返回一个Unix时间戳(1970-01-01 00:00:00 GMT之后的秒数)作为无符号整数、其中GMT为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),它会将参数值以’1970-01-01 00:00:00‘ GMT后的秒数的形式返回。date可以使一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDD 或 YYYYMMDD格式的数字

FROM_UNIXTIME(date)

把UNIX 时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(date)函数互为反函数
UTC_DATE()返回当前UTC(世界标准时间)日期值,将当前日期按照 ' YYYY-MM-DD'  或 YYYYMMDD 格式返回,具体格式根据函数在字符串或是数字语境中而定
UTC_TIME()返回当前时区的时间值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定

MONTH(date)

返回date对应的月份,范围值从1~12
MONTHNAME(date)返回日期date对应月份的英文全名

DAYNAME(d)

获取星期数。 返回d对应的工作日的英文全名,如:Sunday、Monday等
DAYOFWEEK(d)返回d对应的一周中的索引(位置)。1 表示周日,2表示周一,。。。
WEEKDAY()返回日期对应的工作日索引

WEEK(d)

计算日期d是一年中的第几周,双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为从0~53或1~53.
WEEKOFYEAR(d)计算某天位于一年中的第几周,范围是从1~53。相当于WEEK(d,3)
DAYOFYEAR(d)返回d是一年中的第几天,范围1~366

DAYOFMONTH(d)

返回指定日期在一个月中的第几天 1~31
YEAR(date)返回date对应的年份,范围1970~2069
QUARTER()返回指定日期对应的季度
MINUTE(time)返回time对应的分钟数,范围0~59
SECOND(time)返回time对应的秒数, 范围0~59
TIME_TO_SEC(time)返回已转化为秒的time参数。
SEC_TO_TIME(seconds)返回被转化为小时、分钟和秒数的 seconds参数值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定
TIME_FORMAT(time, format)根据format字符串安排time值的格式。

4、条件判断函数

IF(expr, v1,v2) 如果表达式expr 是TRUE,返回值为v1 ,否则为v2
IFNULL(v1,v2)假如v1不为NULL, 则返回v1, 否则返回v2
  

5、系统信息函数 

VERSION()返回MySQL版本号
CONNECTION_ID()返回MySQL如武器当前连接的次数,每个链接都有各自唯一的ID
SHOW PROCESSLIST输出当前用户的连接信息

USER()

/ CURRENT_USER()

/ SYSTEM_USER()

/ SESSION_USER()

返回当前被MySQL服务器验证的用户名和主机名组合
CHARSET(str)返回字符串str使用的的字符集
LAST_INSERT_ID()自动返回最后一个INSERT或UODATE为AUTO_INCREMENT列设置的第一个发生的值
  

6、加/解密函数

PASSWORD(str)返回str加密后的密码字符串
MD5(str)使用MD5加密字符串
ENCODE(str, pswd_str)使用pswd_str作为密码,加密str。使用DECODE()解密结果,是一个和str长度相同的二进制字符串
DECODE(crypt_str, pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str, crypt_str是由ENCODE()返回的字符串
  

7、其他函数

FORMAT(x, n)将数字x格式化,并以四舍五入方式保留小数点后n位.
INET_ATON(expr)IP地址转数字,将字符串网络点地址转换为数值网络地址..
INET_NTOA(epr)数字转IP地址, 将数值网络地址转换为字符串网络点地址
  

 

参考: 《MySQL5.7从入门到精通》刘增杰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值