什么是函数
将一组逻辑语句封装在方法体中,对外暴露方法名
优势
- 影藏了实现细节
- 提高代码的重用性
调用
select 函数名()
分类
- 单行函数
-
字符函数
- concat(拼接字符串):
select concat('1','2');
- length(字符函数):获取参数值的字节个数
select length('john');
- ifnull
- upper: 将字母转换为大写
select upper('john');
- lower: 将字母转换为小写
select lower('john');
- substr、substring: 字符串截取
# 截取从指定索引处后面所有字符(sql中索引从1开始) select substr('test',1) ; # 截取从指定索引处指定字符长度的字符 select substr('test',1,2)
- instr: 返回子串第一次出现的索引,如果找不到返回0
#返回s第一次出现的索引,如果找不到返回0 select instr('test','s');
- trim: 去除指定前后的值
#默认不指定的情况下去除空格 select trim(' test '); #去除前后的'a'字符 select trim('a' from 'aaaaaaatestaaaaaaaaa');
- LPAD: 用指定的字符实现左填充指定长度
#此处test长度为4,而指定的长度为10,那么结果会在test最左边填充6个'*' select LPAD('test',10,'*'); #此处test长度为4,而指定的长度为2,那么结果会自动截取2个长度,即te select LPAD('test',2,'*');
- RPAD: 用指定的字符实现右填充指定长度
#此处test长度为4,而指定的长度为10,那么结果会在test最右边填充6个'*' select RPAD('test',10,'*');
- replace: 替换所有指定的字符
#将test中't'字符替换为's' select replace('test', 't', 's');
- concat(拼接字符串):
-
数学函数:
- round: 四舍五入
# -2 select round(-1.55); #保留两位 select round(1.567,2);
- ceil: 向上取整,返回>=该参数的最小整数
# 2 select ceil(1.02)
- floor: 向下取整,返回<=该参数的最大整数
#-10 select floor(-9.99);
- truncate: 截断
# 保留1位 select truncate(1.69999,1);
- mod: 取余(求膜)
select mod(10,-3); #等价于 select 10%-3;
- round: 四舍五入
-
日期函数
- now: 返回当前系统日期+时间
select now();
- curdate: 返回当前系统日期,不含时间
select curdate();
- curtime: 返回当前时间,不含日期
select curtime();
- 获取指定的部分,年、月、日、小时、分钟、秒
#获取当前日期的年 select YEAR(now ()); select year('1997-09-09'); #获取当前月份(数字) select MONTH(now()); #获取当前月份(英文) select MONTHNAME(now());
- str_to_date: 将日期格式的字符转换成指定格式的日期
# 1999-09-13 select str_to_date('9-13-1999','%m-%d-%y');
- date_format: 将日期转换成字符
select date_format('2019-09-14','%Y年%m月%d日');
序号 格式符 功能 1 %Y 四位的年份 2 %y 两位的年份 3 %m 月份(01,02) 4 %c 月份(1,2) 5 %d 日(01,02) 6 %H 小时(24小时制) 7 %h 小时(12小时制) 8 %i 分钟(00,01) 9 %s 秒(00,01) - now: 返回当前系统日期+时间
-
其它函数
- version: 查看当前版本
- database: 查看当前数据库
- user: 查看当前的用户
-
流程控制函数
- if函数
select if(10>5,'大于','小于')
- case函数
- 语法1:
- case 要判断的字段或表达式
- when 条件1 then 要显示的值1
- when 条件2 then 要显示的值2
- else 要显示的值n
- end
- 语法2:
- case
- when 条件1 then 要显示的值1
- when 条件2 then 要显示的值2
- else 要显示的值n
- end
- 语法1:
- if函数
-
- 分组函数
- sum(): 求和,忽略null的个数
- avg(): 平均值,忽略null的个数
- min(): 最小值,忽略null的个数
- max(): 最大值,忽略null的个数
- count(): 计算,忽略null的个数
- GROUP BY: 将表中的数据分成若干组
- having: 分组后的筛选,在GROUP BY后的条件