一、单行函数
1.字符函数
① Length:获取参数值的字节个数,在utf8下,一个字母占一个字节,一个汉字占三个
例:
Select length(name)长度
From employee;
② Concat:拼接字符串
例:
Select concat(last_name,first_name) 姓名
From employee;
③ Upper:把字符串转换为大写
Lower : 把字符串转换为小写
例:
Select upper(‘lily’);
Select concat(upper(last_name),lower(first_name)) 姓名
From employee;
④ Substr:截取字符
Substr(‘这里是原字符串’,a);:截取从索引a处后面的所有字符
Substr(‘这里是原字符串’,a,n);:截取从索引a处后面的字符长度为n的字符
例:
Select substr(‘你笑起来真好看’,5,3) ;; 截取从第五个字符到第七个字符
注意:SQL中索引是从1开始的
⑤ Instr(‘原字符串’,’子字符串’):返回子字符串在原字符串中第一次出现的索引,如果找不到返回0)
例:Instr(‘你笑起来真好看’,’真好看’) ;
⑥ Trim:去除字符串两端的空格
例:
Select Trim(‘ 真可爱 ‘);
Select trim(‘a’ from 'aaaaa 真aaa可爱 ') 去除两端的a
⑦ Lpad:用指定的字符实现左填充指定长度
例:Select Lpad(‘真好看’,5,’**’);
⑧ Rpad:用指定的字符实现右填充指定长度
例:Select Rpad(‘真好看’,5,’mn’);
⑨ Replace:用指定字符替换原字符串中指定字符
例:Select replace(‘你笑起来真好看’,你,’她’);
2.数学函数
① Round(a,b):对a进行b位的四舍五入,若为负数,可先将其绝对值四舍五入,再添加负号
例:
Select Round(2.38,1);:2.4
Select Round(-2.38,1);:-2.4
② Ceil:向上取整,返回≥该参数的最小整数
例:Select Ceil(2.38);:3
Floor:向下取整,返回≤该参数的最大整数
例:Select Floor(2.38);:2
③ Truncate 截断
例:Select Truncate(2.38,1);:2.3
④ Mod 取余:看被除数,被除数是正数,结果就是正数,被除数为负数,结果就是负数。
例:Select Mod(100,-3);:1

3.日期函数
① Now:返回当前系统日期+时间
Select Now();
② Curdate:返回当前系统日期,不包含时间
Select Curdate();
③ Curtime:返回当前时间,不包含日期
Select Curtime();
④ 获取年(YEAR)、月(MONTH)、日(DAY)、时(HOUR)、分(MINUTE)、秒(SECOND),还可获取月份的英文(MONTHNAME)
例:
Select Year(Now());
Select Month(‘2021-1-25’);
⑤ Str_to_date 将字符通过指定的格式转换成日期
例:Select Str_to_date(‘1-25-2021’,‘%c-%d-%Y);
指定格式可按如下表示:

例:Select Date_format(‘1-25-2021’,‘%c月-%d日-%年);
4.其他函数
① Select version();查看版本
② Select Database( );查看当前数据库
③ Select user();查看当前用户
5.流程控制函数
① if(判断条件,函数2,函数3):条件成立则返回函数2,否则返回函数3
Select if(2>1,’大于‘,‘小于’)
② Case函数:
1>第一种用法:
Case 要判断的字段或表达式
When 常量1 then 要显示的值1或语句1
When 常量2 then 要显示的值2或语句2
……
Else 要显示的值n或语句n
End
例:
Select salary , department_id ,
case department_id
when 30 then salary 1.1
when 40 then salary1.2
else salary
end as 新工资
From employee;
2>第二种用法:
Case
When 条件1 then 要显示的值1或语句1
When 条件2 then 要显示的值2或语句2
……
Else 要显示的值n或语句n
End
例:
Select salary , department_id ,
case
when salary>17000 then ‘A’
when salary>10000 then ‘B’
else ‘C’
end as 工资级别
From employee;
二、 分组函数
即聚合函数、组函数,做统计使用。常见分组函数:Sum求和、Avg平均值、Max最大值、Min最小值、Count计数
例:Select Sum(salary),Avg(salary),Max(salary),Min(salary)
From employee;
- Sum、Avg一般用于处理数值型,Max、Min、Count可处理任何类型 所有分组函数都忽略null值
- 可以和distinct搭配实现去重:
例:Select Sum(distinct salary),Count(distinct salary)
From employee; - Count函数详解
Select Count(salary)From employee;不计数空值
Select Count(*)From employee;一行中每一个都不为空时才不计数,所以用于统计行数
Select Count(1)From employee;相当于添加一列全为1的列,这就能统计表中行数了