4. 常见函数
概念: 类似于Java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。
好处: 1. 隐藏了实现细节 2. 提高代码的重用性
调用: select 函数名() [from 表名]; 函数括号中是实参列表
特点: 1. 干什么(函数功能) 2. 叫什么(函数名)
分类: 1. 单行函数 传入一个参数,返回一个值 如:concat length ifNull isNull
2.分组函数 传入一组参数,返回一个值 **功能:**做统计使用,又称统计函数,聚合,组函数
1. 单行函数
1.字符函数
字符函数分为:大小写控制函数(lower,upper),字符控制函数(concat,substr,length,instr等)
select length(‘str’) 返回3个字节
重点: 一个汉字三个字节 一个字符一个字节
show varibles like ‘%char%’ 查看字符集
select concat(str1, str2) from employees;
select upper(‘join’); 返回JOIN
函数可以嵌套使用,也可将函数的返回值作为另一个函数的参数
select substr(‘123456’, 3) 返回3456
注意: 索引从1开始 substr有三个参数 字符串,开始索引位置,长度
select instr(‘123456’, ‘234’); 返回2
select trim(’ zhang '); # zhang
特殊用法: 指定去掉前后的数
select trim(‘a’ from(‘aaa12a3aaa’)); 返回12a3
用指定的字符等,指定的长度(长度是字符)
select lpad(‘lyt’, 4, ‘*’); 返回 *lyt
select replace(‘123456’, ‘123’, ‘++’); 返回 ++456
第一个参数是 原字符串 第二个参数是 要替换的值 第三个参数是 要替换为什么
2.数学函数
select round(2.5) 返回3
select round(-2.5) 返回-3
select round(2.5, 1); 返回2.5 第二个参数为要保留几位小数
select ceil(1.001); 返回2
select ceil(-1.001); 返回-1
select ceil(1.001); 返回0
select ceil(-1.001); 返回-2
select truncate(1.6999, 2); 返回1.69
mod(a,b) a-a/b*b 取整
select mod(10, 3); 返回1
select mod(-10, -3); 返回-1
返回0-1之间的小数 如果给一个参数种子 每次就会得到一样的随机数
3.日期函数
select now(); 2022-01-06 00:14:06
select year(now()); 获取当前时间的年份
select year(“2022-1-6”); 获取给定时间的年份
month day hour minute second
也可以获取当前月份的名称 select monthname(now()); January
select str_to_date(“1-2020-6”,"%c-%Y-%d"); 2020-01-06
%Y 四位年份 %y 二位年份
%m 两位月份 %c 一位月份
%d 日(两位)
%H 24小时制 %h 12小时制
%i 二位的分钟
%s 二位的秒
select date_format(now(), “%y年%m月%d日”); 22年01月06日
4.其他函数
select version(); 版本号
select database(); 当前在那个数据库中
select user(); 用户名
select md5(“123”); 返回md5加密之后的字符
少年易老学难成,一寸光阴不可轻