mysql之函数

前言

讲函数

1. 字符串函数

1.1 concat

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

在这里插入图片描述
这个函数的作用就是拼接,当然·也可以拼接多个
select就是打印的意思

1.2 lower

select lower('Hello');

在这里插入图片描述
大写转小写

1.2 upper

1.3 lpad

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

在这里插入图片描述

这个的意思就是在01字符串的左边拼接-,直到总共有了五个字符

1.4 rpad

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

在这里插入图片描述

1.5 trim

select trim('  aaaaa    bbbbb    ');

在这里插入图片描述
这个函数的作用主要就是去除字符串前面和后面的空格,不去除里面的空格

1.6 substrig

select substring('abcdefghijk',1,5);

在这里插入图片描述
这个的作用就是从位置1开始,往后截取5个字符,其中字符串的第一个字符的索引就是1

1.7 练习

在这里插入图片描述
练习,将id统一修改为5位数,不足五位数的前面补0
这里的id是varchar

update form set id=lpad(id,5,'0');

在这里插入图片描述

2. 数值函数

2.1 ceil

select ceil(1.1);

在这里插入图片描述

向上取整

2.2 floor

select floor(1.1);

在这里插入图片描述
向下取整

2.3 mod

select mod(6,4);

在这里插入图片描述
取模,前面的参数对后面的那个取模

2.4 rand

select rand();

在这里插入图片描述

产生随机数,这个随机数是在0~1之间的

2.5 round

select round(2.235,2);

在这里插入图片描述
这个的意思就是对2.235四舍五入,并保留两位小数

2.6 练习

生成一个六位数的随机验证码

select round(rand()*1000000,0);

在这里插入图片描述
但有些时候也会生成五位数的
在这里插入图片描述
为什么呢,因为可能会生成这种小数,0.020371
所以可以考虑前面补0

select lpad(round(rand()*1000000,0),6,'0');

在这里插入图片描述

3. 日期函数

3.1 curdate

select curdate();

在这里插入图片描述
打印当前日期

3.2 curtime

select curtime();

在这里插入图片描述
打印当前时间

3.3 now

select now();

在这里插入图片描述
打印日期+时间

3.4 year

select year(now());

在这里插入图片描述
打印当前年,但是里面要传入now()

3.5 month

select month(now());

在这里插入图片描述

3.6 day

select day(now());

在这里插入图片描述

3.7 date_add

select date_add(now(),interval 70 day);

在这里插入图片描述
这个表示在当前的时间加上70天

select date_add(now(),interval 70 month);
select date_add(now(),interval 70 year);

3.8 datediff

select datediff('2020-9-9','2020-10-9');

在这里插入图片描述
算两个日期相差了多少天,前面的日期,减去后面的日期

3.9 练习

查询所有人的进入日期到现在的天数,并排序,降序

在这里插入图片描述

select name,datediff(curdate(),endate) from form;

在这里插入图片描述

select name,datediff(curdate(),endate) as 'days' from form order by days desc; 

在这里插入图片描述

4. 流程函数

4.1 if

select if(true,'ok','ko');

在这里插入图片描述
如果第一个参数为true,则返回第二个参数
如果第一个参数为false,则返回第三个参数

4.2 ifnull

select ifnull('ok','aa');

在这里插入图片描述

select ifnull(null,'aa');

在这里插入图片描述
第一个参数为null的话,就返回第二个参数,第一个不为null,就返回第一个

select ifnull('','aa');

在这里插入图片描述
空的字符串也不是null

4.3 case expr when else

在这里插入图片描述
如果name为lyx就打印傻子,还有ym也打印傻子,否则打印汉堡

select
    name,
    case name when 'lyx' then '傻子'end
from form;

在这里插入图片描述
case name when ‘lyx’ then '傻子’end
这句话的意思就是当name==lyx就返回傻子
end表示结束

select
    name,
    case name when 'lyx' then '傻子' when 'ym' then '傻子' end
from form;

在这里插入图片描述
连着用就是且的意思

在这里插入图片描述

select
    name,
    (case name when 'lyx' then '傻子' when 'ym' then '傻子' end) as '外号'
from form;

在这里插入图片描述
还可以给这个流程函数整体取别名

4.4 case when else

case expr when 就是看等不等于,如果要比什么大于小于的话,还是要看case when

select
    name,
    case when age>30 then '老年人' else '年轻人' end
from form;

这个的作用就是如果age大于30就是老年人,否则年轻人
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值