MySQL——函数

1.聚合函数

函数作用备注
COUNT()计数
SUM()求和函数
AVG()求平均数
GROUP_CONCAT()拼接

GROUP_CONCAT([DISTINCT]字段名

[ORDER BY 排序字段]

[SEPARATOR'分隔符']

2.数学函数

函数作用备注
ABS(x)求绝对值SELECT ABS(-1)#返回1
CEIL(x)/FLOOR(x)返回大于/小于或等于x的最小整数

SELECT CEIL(1.5)#返回2;

SELECT FLOOR(1.5)#返回1 

GREATEST(expr1,expr2,...)/

LEAST(expr1,expr2,...)

返回列表中的最大/小值

SELECT GREATEST(1,2,3)#返回3;

SELECT LEAST('a','aa','aaa')#返回a

MAX()/MIN()返回字段中的最大/小值
MOD(x,y)返回x除以y之后的余数SELECT MOD(5,2)#返回1
PI()返回圆周率
POW(x,y)返回x的y次方SELECT POW(2,3)#返回8
RAND()返回0-1之间的随机数
ROUND(x,y)返回x的指定位数的小数,遵循四舍五入,y不指定则小数位数为0

SELECT ROUND(2.3123)#返回2

SELECT ROUND(2.3123,1)#返回2.3

TRUNCATE(x,y)不遵循四舍五入,直接舍去小数

3.字符串函数

注:SQL字符串是从1开始编号的

函数作用备注

CHAR_LENGTH(str)/

LENGTH(str)

返回字符串长度函数

区别:SELECT CHAR_LENGTH('你好');#返回2;SELECT LENGTH('你好');返回6;英文是一样的

CONCAT(str1,str2,...)/

CONCAT_WS(separator,str1,str2,...)

组合字符串CONCAT_WS()的separator可执行分隔符
FIELD(str,str1,str2,str3,...)返回字符串在列表中的位置SELECT FIELD('a','aaa','a');返回2
LTRIM(str)/RTRIM(str)/TRIM( str)去除左/右/两端的空格
MID(str,pos,len)字符串截取
POSITION(substr IN str)获取字符串A在字符串B中的位置SELECT POSITION('a' IN 'bas');#返回2
REPLACE(str,from_str,to_str)字符串替换SELECT REPLACE('abbs','s','c');#返回abbc
REVERSE(str)字符串翻转
RIGHT(str,len)/LEFT(str,len)返回字符串的后/前几个字
STRCMP(expr1,expr2)字符串比较,两个字符串字典里出现的先后顺序
SUBSTR(str FROM pos FOR len)字符串截取
UCASE()/upper(str)将小写转为大写
LCASE(str)/LOWER(str)将大写转换为小写

4.日期函数

函数作用
UNIX_TIMESTAMP()获取毫秒值
UNIX_TIMESTAMP将一个日期字符转为毫秒值
FROM_UNIXTIME(unix_timestamp)将毫秒值转为指定格式的日期
CURDATE()/CURRENT_DATE()获取当前的年月日
CURTIME()/CURRENT_TIME()获取当前的时分秒
CURRENT_TIMESTAMP()
 
获取年月日和时分秒
DATE(expr)从日期中获取年月日
DATEDIFF(expr1,expr2)计算两个日期之间的天数
TIMEDIFF(expr1,expr2)计算时间的差值(秒级)
DATE_FORMAT(date,format)转换日期的格式
STR_TO_DATE(str,format)将字符串转为日期
DATE_SUB(date,INTERVAL expr unit)/DATE_ADD(date,INTERVAL expr unit)将日期进行减(加)法
EXTRACT(unit FROM date)从日期中获取小时/分/秒(unit)
LAST_DAY(date)获取给定日期的最后一天
MAKEDATE(year,dayofyear)获取指定年份和天数的日期
YEAR(date),MONTH(date),QUARTER(date)跟去日趋获取年月日
DAYOFWEEK(date),WEEKOFYEAR(date)根据日期获取

日期格式参考

5.控制流函数

函数作用备注
IF(expr1,v1,v2)如果expr1成立,则返回v1,否则返回v2SELECT *,if(score>85,"及格","优秀") flag FROM score;
IFNULL(expr1,expr2)
ISNULL(expr)判断是不是为空值,返回0和1
NULLIF(expr1,expr2)两个字符串是否一样,如果一样则null,否则返回第一个字符串
CASE搜索语句#CASE case_value
#    WHEN when_value THEN
#        statement_list
#    ELSE
#        statement_list
#END CASE;

6.窗口函数

窗口使用要在MySQL8.0以上,且比较重要,所以另起一节进行说明

窗口函数详见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值