数据库自学Day2-函数

目录

函数的介绍

字符串函数

数值函数

日期函数

流程函数

 函数-小结


函数的介绍

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在
MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务
需求即可。

字符串函数

常见的字符串函:

 1.concat: 字符串拼接

select concat('Hello' , ' MySQL');

2.lower:全部转为小写

select lower('Hello');

3.upper:全部转大写

select upper('Hello');

4.lpad:左填充

select lpad('01', 5, '-');

 

5.rpad:右填充

select rpad('01', 5, '-');

6.trim:去除空格

select trim(' Hello MySQL ');

7.substring:截取子字符串

select substring('Hello MySQL',1,5);

(案例)由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0

比如: 1号员工的工号应该为00001。

 

update emp set workno = lpad(workno, 5, '0');

数值函数

常见的数值函数:

 ceil:向上取整

select ceil(1.1);//2
floor:向下取整
select floor(1.9);//1

mod:取模//除之后的余数

select mod(7,4);
rand:获取随机数
select rand();
得到介于0-1之间的小数
round:四舍五入
select round(2.344,2);

案例:

通过数据库的函数,生成一个六位数的随机验证码。
思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基
础 上乘以1000000,然后舍弃小数部分, 如果长度不足6位,补0
select lpad(round(rand()*1000000 , 0), 6, '0');

日期函数

常见的日期函数:

curdate:当前日期

select curdate();
curtime:当前时间
select curtime();
now:当前日期和时间
select now();

YEAR , MONTH , DAY:当前年、月、日

select YEAR(now()); 
select MONTH(now()); 
select DAY(now());
date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );

 

datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');
(案例):
查询所有员工的入职天数,并根据入职天数倒序排序。
思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。
select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

 

if:
select if(false, 'Ok', 'Error');
ifnull
select ifnull('Ok','Default'); //OK
select ifnull('','Default');// 
select ifnull(null,'Default');//Default
case when then else end
select
    name, 
    ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) as '工作地址'
from emp;
案例 :

 

select
    id, 
    name, 
    (case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end ) '数学', 
    (case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end ) '英语',
    (case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) '语文' 
from score;

 函数-小结

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么时候养猫猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值