mysql常用函数归纳(简单)

字符处理函数
多个字符串链接:
concat(s1,s2,…,sn);
字符大写:
upper(s);
字符小写:
lower();
左填充字符:
lpad(原str,字符长度N,填充字符str);
右填充字符:
rpad(原str,字符长度N,填充字符str);
字符串去除空格(仅去除开始和结尾,中间空格不去除)
trim(str);
截取子字符串
substr(原字符串str,起始位p,长度N);

select concat(lower(upper(trim(rpad(lpad(substr(' hello zcm   ',1,6),10,' '),10,' ')))),' ','world','!');

常用数值函数
小数点向上取整数(直接截断,舍弃小数点)
ceil(f);
小数点向下取整数(向上截断,可以理解为舍弃小数点+1)
floor(f);
随机数0~1之间
rand();
按小数点位进行四舍五入取整
round(数字f,小数点位N);
取模运算
mod(x,y)

--生产一个6位的验证码(短信或是邮件)
select floor(rand() * 1000000);
select ceil(rand() * 1000000);
select round((rand() * 1000000),0);
select mod((floor(rand() * 1000000))+(ceil(rand() * 1000000))+(round((rand() * 1000000),0)),1000000);
select lpad(mod((floor(rand() * 1000000))+(ceil(rand() * 1000000))+(round((rand() * 1000000),0)),1000000),6,'0');

日期函数
当前日期
curdate()
当前时间
curtime()
现在时刻(日期+时间)
now()
分别取得年、月、日
year(date);
month(date);
year();
在日期或时间戳上加一个日期(年月日)
date_add(date,interval N year/month/day);
求得两个日期之前差的天数
datediff(date1,date2);

select now();
select curdate();
select curtime();
select year(now());
select day(now());
select month(now());
select date_add(now(),interval 10 day);
select datediff(now(),'2022-08-10');
select * from  emp;
alter table emp add b_date date;
desc emp;
update emp set b_date = '1986-10-26' where ename = 'authur';
select ename,(year(curdate()) - year(b_date)) as '年龄' from emp where ename = 'authur';

流程控制函数(if else,换成case when then else end)
if(value,t,f);–如果value为真,则返回t,否则返回f
ifnull(value1,value2)–如果不为空则返回value1,如果为空则返回2
case when [val1] then [res1]… else [default] end --如果条件val1为真,则返回res1,否则返回default
case [exp1] when [val1] then [res1]… else [defalult] end
判断式exp1是否为val1,如果等于val1则返回
res1否则返回default

select if(1>2,'对','错') as '1>2是对是错?';
select ifnull(null,'空') as 'null是否为空';

select * from emp;
select * from dept;
insert into emp values(2,'张三',14,'男','顺景公寓','123456789',1001,'2','2002-1-1');
insert into emp values(3,'李四',60,'男','顺景公寓','123456789',1001,'2','2002-1-1');
insert into emp values(4,'王五',30,'男','顺景公寓','123456789',1001,'2','2002-1-1');
update emp set eage = 25 where emp_id = 4;

select
   ename as '姓名',
   case when  eage <= 20 then '少年' when eage <=40  then '壮年' else '老年' end '年龄'
    from emp;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值