【第三章 MySQL-字符串函数,数值函数,日期函数,流程函数】

第三章 MySQL-字符串函数,数值函数,日期函数,流程函数

1.字符串函数:
常见字符串函数:
在这里插入图片描述

演示如下:
A. concat : 字符串拼接
select concat('Hello' , ' MySQL');
B. lower : 全部转小写
select lower('Hello'); 
C. upper : 全部转大写
select upper('Hello'); 
D. lpad : 左填充
select lpad('01', 5, '-'); 
E. rpad : 右填充
select rpad('01', 5, '-'); 
F. trim : 去除空格
select trim(' Hello MySQL '); 
G. substring : 截取子字符串
select substring('Hello MySQL',1,5);#索引从位置1开始
案例:
由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001update emp set workno=lpad(workno,5,'0');

2.数值函数:
常见数值函数:
在这里插入图片描述

演示如下:
A. ceil:向上取整
select ceil(1.1); 
B. floor:向下取整
select floor(1.9);
C. mod:取模
select mod(7,4); 
D. rand:获取随机数
select rand();
E. round:四舍五入
select round(2.344,2);
案例:
通过数据库的函数,生成一个六位数的随机验证码。
思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础
上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0
select lpad(round( rand()*1000000,0),6,'0') ;

3.日期函数:
常见日期函数:
在这里插入图片描述

演示如下:
A. curdate:当前日期
select curdate(); 
B. curtime:当前时间
select curtime();
C. now:当前日期和时间
select now(); 
D. YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());
select MONTH(now());
select DAY(now());
E. date_add:增加指定的时间间隔
select date_add(now(),interval 70 day);#往后推迟70天
F. datediff:获取两个日期相差的天数
select datediff('2022-12-1','2022-10-1');#第一个时间-第二个时间
案例:
查询所有员工的入职天数,并根据入职天数倒序排序。
思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。
select name,datediff(curdate(),entrydate) as 'entrydays'from emp order by entrydays desc;

4.流程函数:
在这里插入图片描述

A. if
select if(false, 'Ok', 'Error');#结果为error
B. ifnull
select ifnull('Ok','Default');
select ifnull('','Default');#结果为空
select ifnull(null,'Default');#结果为Default
C. case when then else end
需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)
案例:
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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值