概念:将一组逻辑语句封装在方法体中,对外暴露方法名
好处:1)隐藏了实现细节
2)提高代码的重用性
调用:select 函数名(实参列表)【from 表】
特点:1)函数名
2)函数功能
分类:1)单行函数
如 concat、length、ifnull等
2)分组函数
功能:做统计使用,又称为统计函数、聚合函数、组函数
一、单行函数
1、字符函数
1) length获取参数值的字节个数
2) Concat拼接字符串
3) Upper、lower大小写转换
4) Substr、substring
注意:索引从1开始
#截取从指定索引处后面所有字符
SELECT SUBSTR(‘abcdefg’,3) AS out_put;
#截取从指定索引处指定字符长度的字符
SELECT SUBSTR(‘abcdefghi’,2,4) AS out_put;
5) Instr 返回子串第一次出现的索引,否则返回0
SELECT INSTR(‘abcdef’,’bcd’) AS out_put;
6) Trim
SELECT TRIM(‘ abc ’) AS out_put;
SELECT TRIM(‘a’ FROM ‘aaaaaahhaaahhaaaa’) AS out_put;
7) lpad用指定的字符实现左填充指定长度
SELECT LPAD(‘hahaha’,2,’*’) AS out_put;
8) Rpad用指定的字符实现右填充指定长度
SELECT RPAD(‘hahaha’,2,’*’) AS out_put;
9) replace替换
SELECT REPLACE(‘hahahaleleleha’,’ha’,’mo’) AS out_put;
2、数学函数
1) Round 四舍五入
SELECT ROUND(-1.55)
2) ceil向上取整,返回>=该参数的最小整数
SELECT CEIL(1.02);
3) floor向下取整,返回<=该参数的最大整数
4) Truncate截断
SELECT TRUNCATE(1.69999,1);
5) mod取余
SELECT MOD(10,-3);
SELECT 10%3;
3、日期函数
1) now返回当前系统日期+时间
SELECT NOW();
2) Curdate返回当前系统日期,不包含时间
SELECT CURDATE();
3) CURTIME返回当前时间,不包含日期
SELECT CURTIME();
4) 可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW()) AS 年;
5) str_to_date:将日期格式的字符转换成指定格式的日期
STR_TO_DATE(‘9-13-1999’,’%m-%d-%Y’)
6) Date_format:将日期转换成字符
DATE_FORMAT(‘2018/6/6’,’%Y年%m月%d日’)
4、其他函数
SELECT VERSION();
SELECT DATABASE();
SELECT USER();
5、流程控制函数
1) if函数:if else的效果
2) case函数
a. Switch case的效果,等值判断
语法:
Case 要判断的字段或表达式
When 常量1 then 要显示的值1或语句;
When 常量2 then 要显示的值2或语句;
...
Else 要显示的值n或语句n;
End
例子:
SELECT salary AS 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*1.2
ELSE salary
END AS 新工资
FROM employees;
b. 多重if的效果,区间判断
语法:
CASE
WHEN 条件1 then 要显示的值1或语句1
WHEN 条件2 then 要显示的值2或语句2
...
Else 要显示的值n或语句n;
End
例子:
CASE
WHEN salary>2000 THEN ‘A’
WHEN salary>3000 THEN ‘B’
ELSE ‘D’
END AS 工资级别
FROM employees;
二、分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:sum求和、avg平均值、max最大值、min最小值、count计算个数
特点:1)、sum、avg一般用于处理数值型
2)、max、min、count可以处理任何类型
3)、分组函数忽略NULL值