字符串:
update emp set workno = lpad(workno,10,'0'); -- 左填充0到10位
数值:
`
select ceil(1.5); -- 向上取整 结果2
select floor(1.9); -- 向下取整 结果1
select mod(7,4); -- 取余数 结果3
select rand(); -- 生成0或者1的随机数,包含小数
select round(2.234,2); - 四舍五入,2.234保留2位小数,结果2.20
'
select lpad(round(rand()1000000,0),6,'0'); -- 前面补充0
select rpad(round(rand()1000000,0),6,'0'); -- 后面补充0
' -- 生成一个6位的验证码,随机数*100000,然后保留0位小数即可
日期函数:
select curdate(); -- 当前年月日 select curtime(); -- 当前时间 select now(); -- 当前年月日和时间 select year(now()); -- 当前时间中的年 select month(now()); -- 当前时间中的月 select day(now()); -- 当前时间中的日 select date_add(now(),interval 70 day);-- 当前时间的70天后的日期 select date_add(now(),interval 70 month);-- 当前时间的70月 select date_add(now(),interval 70 year);-- 当前时间的70年 select datediff('2021-01-01',now()); -- 求差值天数 select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydays desc ; -- 入职多少天,安降序排列
流程函数:
'
select if(true,'当前值正确','值出现了错误'); -- true
'
'select
name,
case workaddress when '北京' then '一线' when '上海' then '一线' else '二线' end as '工作地址'
from emp;'
`create table score(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '数学',
english int comment '英语',
chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95
), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);
select * from score;
select
id,name,
case when math >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end as '数学',
case when english >= 85 then '优秀' when english >= 65 then '及格' else '不及格' end as ’英语‘,
case when chinese >= 85 then '优秀' when chinese >= 65 then '及格' else '不及格' end as '语文'
from score;`