函数是指一段可以直接被另一段程序调用的程序或代码。
1 . 字符串函数
例: 如果要让表中所有人员的工号变成五位,不足的在前面补 0
// 是要更新数据
update info set worknumber = lpad(worknumber , 5 , '0') ; 即可
2 . 数值函数
例: 生成一个六位的随机验证码
select lpad(round(rand()*1000000 , 0) , 6 , '0') ;
3 . 日期函数
- date-add()
//看当前时间往后推 70 天后的时间
select date-add(now() , interval 70 day);
//推 70 个月
select date-add(now() , interval 70 month);
- datediff()
// 查询两个日期之间的差值
select datediff('2021-10-01' , '2022-08-07');
例: 查询所有员工入职天数 ,并根据结果倒序排序
select name ,datediff(curdate(),entrydate)as 'entrydays' from info order by entrydays desc;
4 . 流程控制函数 (在SQL语句中实现条件筛选,从而提高语句的效率)
-
select if(true , 'OK' , 'ERROR'); // 'OK'
-
select ifnull('OK' , 'Default') // 'OK'
- select ifnull(null , 'Default') // 'Default'
-
case when then else end
- 查询表 ,如果员工工作地址为北京上海,则显示一线城市,其他显示二线城市
- select name , (case workplace when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' ) as '工作地址' from info;
例: 统计班级同学成绩 ,>=85 展示优秀 ;>=60 展示及格 ;其他, 展示不及格。
select
id ,
name ,
(case when math > =85 then '优秀' when math >=60 then '及格' else '不及格' end) as '数学' ,
(case when chinese > =85 then '优秀' when math >=60 then '及格' else '不及格' end) as '语文'
from info ;