MySQL的常用函数

MySQL的常用函数有五种:数学函数、字符串函数、日期和时间函数、流程控制函数、其他函数。

数学函数

 

函数表达式意义 
ABS(x)返回x的绝对值 
SQRT(x)返回非负数x的平方根 
PI()返回圆周率 
MOD(x,y)或x%y返回x被y除的余数 
CEIL(x)、DEILING(x)返回大于或等于x的最小整数值 
FLOOR(x)返回小于或等于x的最大整数值 
ROUND(x,y)返回保留小数点后面y位,四舍五入的数x 
TRUNCATE(x,y)返回被舍弃的小数点后y位的数字x 
RAND()每次产生不同的随机数 
SIGN(x)返回x的符号 
POW(x,y)、POWER(x,y)返回x的y次方的结果值 
EXP(x)返回e的x次方的结果值 

 

另外还有RAND(x):返回一个范围在0~1之间的随机浮点数,x为随机种子。

字符串函数

CHAR_LENGTH(str)返回字符串str的所包含字符个数
LENGTH(str)返回字符串str的字节长度(一个汉字占两个字节)
CONCAT(s1,s2,...)字符串连接
CONCAT_WS(x,s1,s2,...)字符串连接,x是连接的分割符
INSERT(s1,x,len,s2)返回字符串s1,在x位置,长度为len插入s2
LOWER(str)、LCASE(str)将字符串全部字符转换成小写
UPPER(str)、UCASE(str)将字符串全部字符转换成大写
LEFT(s,n)返回最左边指定长度的字符
RIGHT(s,n)返回最右边指定长度的字符
LPAD(s1,len,s2)

在s1左边填充s2,字符串总长度为len

RPAD(s1,len,s2)在s1右边填充s2,字符串总长度为len
TRIM(s1 from s)在s两边删除字符s1
LTRIM(s)删除字符串s的左侧空格 如"  abc"
RTRIM(s)删除字符串s的右侧空格 如"abc  "
REPEAT(s,n)生成有n个s的字符串
SPACE(n)返回一个由n个空格组成的字符串
REPLACE(s,s1,s2)

将s中的s1替换成s2

STRCMP(s1,s2)比较字符串大小,>0左边大,=0相同,<0右边大
SUBSTRING(s,n,len)获取从s的第n个字符开始长度为len的字串

LOCATE(str1,str)、

POSITION(str1 IN str)、

INSTR(str,str1)

返回在str中str1的开始位置
REVERSE(s)将s反转
ELT(n,s1,s2,s3,...)返回第n个字符串,若n小于1或大于参数的数目,则返回NULL
FORMAT(number)将数字number以千分格式显示:1,200.12

日期和时间函数

CURDATE()、CURRENT_DATE()获取当前日期
NOW()获取当前日期和时间
CURTIME()返回当前时间,只包括时分秒
UTC_DATE()返回世界标准时间日期
UTC_TIME()返回世界标准时间

TIMEDIFF(date1,date2)

返回两个日期相差的时间
DATEDIFF(date1,date2)返回两个日期相差的天数
DATE_ADD(date,INTERVAL n unit)在date上加n个unit,unit为年、月、日等时间间隔
DATE_SUB(date,INTERVAL n unit)在date上减n个unit,unit为年、月、日等时间间隔
DATE(date)、TIME(date)、YEAR(date)选区日期时间中的各个部分
EXTRACT(unit from date)从日期中抽取出某个单独的部分或组合

DAYOFWEEK(date)、DAYOFMONTH(date)、

DAYOFYEAR(date)

返回当前是一周、一月、一年中的第几天
DAYNAME、MONTHNAME但会日期的星期和月份名称
DATE_FORMATE(date,format)格式化日期
TIME_FORMATE(date,format)格式化时间
TIMESTAMPDIFF(unit,date1,date2)计算date1离date2多少个uint

附上FORMAT格式表

流程控制函数

常见的控制流程控制函数有:CASE、IF、IFNULL、NULLIF

case:

表达一:
CASE value WHEN compare_value THEN result 
           WHEN compare_value THEN result ...
           ELSE result END;

例子:
SELECT CASE 1 WHEN 1 THEN 'ONE'
              WHEN 2 THEN 'TWO'
              ELSE 'MORE' END;
表达二:
CASE WHEN condition THEN result
     WHEN condition THEN result
     ELSE result END;

 例子:
SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

 IF:

表达:
IF(exp1,exp2,exp3)
若exp1为真,则返回exp2,否则返回exp3

例子:
SELECT IF(1>2,'yes','no');

IFNULL和NULLIF

表达:
IFNULL(exp1,exp2)或NULLIF(exp1,exp2)
这两个表达式等价
若exp1为空,则返回exp2,否则返回exp1

例子:
SELECT IFNULL(salary,0);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值