MySQL查询语句常用函数总结
分类:
单行函数:如concat、length、ifnull等
分组函数:做统计使用,又称为统计函数、聚合函数、组函数
一、单行函数
字符函数
length:获取参数值的字节个数
concat:拼接字符串
upper/lower:将字符串变成大写/小写
substr/substring:截取字符串
注意:索引从1开始,截取从指定索引处后面所有字符
instr:返回子串第一次出现的索引,如果找不到返回0
trim:去掉字符串前后的空格或子串
lpad:用指定的字符实现左填充指定长度
rpad:用指定的字符实现右填充指定长度
replace:替换,替换所有的子串
数学函数
round:四舍五入
ceil:向上取整,返回>=该参数的最小整数
floor:向下取整,返回<=该参数的最大整数
truncate:截断,小数点后截断到几位
mod:取余,被除数为正,则为正;被除数为负,则为负
rand:获取随机数,返回0-1之间的小数
日期函数
now:返回当前系统日期+时间
curdate:返回当前系统日期,不包含时间
curtime:返回当前时间,不包含日期
可以获取指定的部分,年、月、日、小时、分钟、秒
str_to_date:将日期格式的字符转换成指定格式的日期
SELECT
STR_TO_DATE('1998-3-2', '%Y-%c-%d') AS output ;
date_format:将日期转换成字符串
SELECT
DATE_FORMAT(NOW(), '%y年%m月%d日)') AS output ;
datediff:返回两个日期相差的天数
monthname:以英文形式返回月
流程控制函数
if函数:
if(表达式1,表达式2,表达式3)
#如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值
case函数:
情况1:类似于java中的switch语句,一般用于实现等值判断
语法:
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end
情况2:类似于java中的多重if语句,一般用于实现区间判断
语法:
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end
二、分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:sum 求和、avg 平均值、max 最大值、min 最小值、count 计数(非空)
特点:
sum、avg一般用于处理数值型数据
max、min、count可以处理任何类型数据
以上分组函数都忽略null值
可以和distinct搭配实现去重的运算