MYSQL常用函数

数学函数

ABS(X)返回X的绝对值
FLOOR(X)返回不大于X的最大整数
ABS(X)返回X的绝对值
FLOOR(X)返回不大于X的最大整数
CEIL(X)、CEILING(X)返回不小于X的最小整数
TRUNCATE(X,Y)返回数值X保留到小数点后Y位的值
ROUND(X)四舍五入返回离X最近的整数
ROUND(X,Y)保留X小数点后Y位四舍五入的值
RAND()返回0~1的随机数(不包括0和1)
SIGN(X)返回X的符号,对应-1,0或1
PI()返回圆周率的值。默认的显示小数位数是6位
POW(x,y)、POWER(x,y)返回x^y的值
SQRT(X)返回非负数X的二次方根
EXP(x)返回e的x乘方后的值
MOD(N,M)返回N除以M以后的余数
LOG(x)返回以2为底,x的对数
LOG10(x)返回以10为底,x的对数
RADIANS(x)返回x角度的弧度值
DEGREES(x)返回x弧度的角度值
SIN(x)、ASIN(x)前者返回x的正弦,其中x为给定的弧度值;后者返回x的反正弦值,x为正弦。
COS(x)、ACOS(x)前者返回x的余弦,其中x为给定的弧度值;后者返回x的反余弦值,x为余弦。
TAN(x)、ATAN(x)前者返回x的正切,其中x为给定的弧度值;后者返回x的反正切值,x为正切。
COT(x)返回给定弧度值x的余切。

字符串函数

CHAR_LENGTH(str)计算字符串的长度
LENGTH(str)返回值字符串str的字节长度
CONCAT(s1,s2,...)

返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL,

则返回值为NULL

SUBSTRING(s,n,len)、MID(s,n,len)两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串
CONCAT_WS(x,s1,s2,...)以x为间隔,拼接s1和s2字符串
INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符
INSTR(s1, s2)返回字符串s2,在字符串s1中开始的位置,下标从1开始,没有找到返回0
LOWER(str)、LCASE(str)将字符串中的字母全部转换成小写
UPPER(str)、UCASE(str)将字符串中的字母全部转换成大写

LEFT(s,n)、

RIGHT(s,n)

前者返回字符串s从最左边开始的n个字符

后者返回字符串s从最右边开始的n个字符

LPAD(s1,len,s2)、RPAD(s1,len,s2)

前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

后者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

LTRIM(s)、

RTRIM(s)

前者返回字符串s,其左边所有空格被删除

后者返回字符串s,其右边所有空格被删除

TRIM(s)返回字符串s删除了两边空格之后的字符串
TRIM(s1 FROM s)删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格
REPEAT(s,n)返回一个由重复字符串s组成的字符串,字符串s的数目等于n
SPACE(n)返回一个由n个空格组成的字符串
REPLACE(s,s1,s2)返回一个字符串,用字符串s2替代字符串s中所有的字符串s1
STRCMP(s1,s2)若s1和s2中所有的字符串都相同,则返回0;根据当前分类次序,第一个参数小于第二个则返回-1,其他情况返回1
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)

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

(从第几个字符开始)

REVERSE(s)将字符串s反转。
ELT(N,str1,str2,str3,str4,...)返回第N个字符串。
FIELD(s,s1,s2,...)返回第一个与字符串s匹配的字符串的位置。
FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置。
MAKE_SET(x,s1,s2,...)按x的二进制数从s1,s2...,sn中选取字符串

日期和时间函数

CURDATE()、CURRENT_DATE()返回当前日期,格式:yyyy-MM-dd
CURTIME()、CURRENT_TIME()返回当前时间,格式:HH:mm:ss

NOW()、CURRENT_TIMESTAMP()

LOCALTIME()、SYSDATE()、LOCALTIMESTAMP()

返回当前日期和时间,格式:yyyy-MM-dd HH:mm:ss
DATEDIFF(d1,d2)计算日期d1与d2之间相隔的天数
ADDDATE(d,n)

计算起始日期d加上n天的日期,n为正数向后推,负数向前

DATE_FORMAT(d,f)按照表达式 f 的要求显示日期d
TIME_FORMAT(t,f)按照表达式 f 的要求显示时间t
STR_TO_DATE(s,f)按照表达式 f 的要求,转换字符串s成日期时间类型
UNIX_TIMESTAMP()返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数
UNIX_TIMESTAMP(date)返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数
FROM_UNIXTIME(date)和UNIX_TIMESTAMP互为反函数,把UNIX时间戳转换为普通格式的时间。
UTC_DATE()

返回当前UTC(世界标准时间)日期值,其格式为"YYYY-MM-DD"

或"YYYYMMDD"

UTC_TIME()

返回当前UTC时间值,其格式为"YYYY-MM-DD"或"YYYYMMDD"

MONTH(d)返回日期d中的月份值,范围是1~12
MONTHNAME(d)返回日期d中的月份名称,如:January、February等
DAYNAME(d)返回日期d是星期几,如:Monday、Tuesday等
DAYOFWEEK(d)返回日期d是星期几,如:1表示星期日,2表示星期一等
WEEKDAY(d)返回日期d是星期几,如:0表示星期一,1表示星期二等
WEEK(d)计算日期d是本年的第几个星期,范围是0~53
WEEKOFYEAR(d)计算日期d是本年的第几个星期,范围是1~53
DAYOFYEAR(d)计算日期d是本年的第几天
DAYOFMONTH(d)计算日期d是本月的第几天
YEAR(d)返回日期d中的年份值
QUARTER(d)返回日期d是第几季度,范围是1~4
HOUR(t)返回时间t中的小时值
MINUTE(t)返回时间t中的分钟值
SECOND(t)返回时间t中的秒钟值
EXTRACT(type FROM date)

从日期中提取一部分,type可以是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND

TIME_TO_SEC(t)将时间t转换为秒
SEC_TO_TIME(s)将以秒为单位的时间s转换为时分秒的格式
TO_DAYS(d)计算日期d至0000年1月1日的天数
FROM_DAYS(n)计算从0000年1月1日开始n天后的日期

ADDDATE(d,INTERVAL expr type)

DATE_ADD(d,INTERVAL expr type)

计算起始日期d加上一个时间段后的日期
SUBDATE(d,n)计算起始日期d减去n天的日期
SUBDATE(d,INTERVAL expr type)计算起始日期d减去一个时间段后的日期
ADDTIME(t,n)计算起始时间t加上n秒的时间
SUBTIME(t,n)计算起始时间t减去n秒的时间
DATE_FORMAT(d,f)按照表达式 f 的要求显示日期d
TIME_FORMAT(t,f)按照表达式 f 的要求显示时间t
GET_FORMAT(type, s)根据字符串s获取type类型数据的显示格式

条件判断函数

IF(表达式 ,a,b)如果表达式成立,返回a的值,不成立则返回b的值
IFNULL(a,b)如果a为空,返回a的值,a不为空,返回b的值

系统信息函数

VERSION()获取数据库的版本号
CONNECTION_ID()获取服务器的连接数
DATABASE()、SCHEMA()获取当前数据库名
USER()、SYSTEM_USER()、SESSION_USER()获取当前用户名

CURRENT_USER()、

CURRENT_USER

获取当前用户名
CHARSET(str)获取字符串的字符集
COLLATION(str)获取字符串的字符排序方法
LAST_INSERT_ID()获取最近生成的AUTO_INCREMENT值

加密函数

PASSWORD(str)

对字符串进行加密。经此函数加密后的数据是不可逆的。

其经常用于对普通数据进行加密。(注:mysql8无法使用)

MD5(str)对字符串进行MD5加密。经常用于对普通数据进行加密。
ENCODE(str,pass_str)

使用指定字符串pass_str来加密字符串str。加密后的结果是一个二进制数,

必须使用BLOB类型的字段来保存它。

DECODE(crypt_str,pass_str)使用字符串pass_str来为crypt_str解密

其它函数

FORMAT(X,D)将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入
CONV(N,from_base,to_base)

不同进制数之间的转换,返回值为数值N的字符串表示,

由from_base进制转换为to_base进制

INET_ATON(expr)

给出一个作为字符串的网络地址的点地址表示,

返回一个代表该地址数值的整数,地址可以使4或8比特

INET_NTOA(expr)给定一个数字网络地址(4或8比特),返回作为字符串的该地址的点地址表示
BENCHMARK(count,expr)

重复执行count次表达式expr,它可以用于计算MySQL处理表达式的速度,

结果值通常是0(0只是表示很快,并不是没有速度)。

另一个作用是用它在MySQL客户端内部报告语句执行的时间

CONVERT(str USING charset)使用字符集charset表示字符串str

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值