MySQL函数

本文介绍了SQL中的各种函数,包括字符串操作(如拼接、大小写转换、填充与修剪),数值函数(向上取整、向下取整、取余),日期时间处理,以及流程控制函数,如条件判断和案例分析。实例展示了如何应用这些函数进行数据处理和业务场景模拟。
摘要由CSDN通过智能技术生成
字符串函数
concat(s1,s2,...sn)

字符串拼接,将s1,s2,...sn拼接成一个字符串

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

Hello MySQL

lower(str)

将字符串str全部转为小写

select lower('Hello');

hello

upper(str)

将字符串str全部转为大写

select upper('Hello');

HELLO

lpad(str,n,pad)

左填充,用字符串pad对str的左边进行填充,达到n个字符串长度

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

---01

rpad(str,n,pad)

右填充,用字符串pad对str的右边进行填充,达到n个字符串长度

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

去掉字符串头部和尾部的空格

select trim(' Hello MySQL ');

Hello MySQL

substring(str,start,len)

返回从字符串str从start位置起的len个长度的字符串

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

索引从1开始截,截5个

Hello


练:

由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0;比如:1号员工的工号应该为00001

update emp set workno = lpad(workno,5,'0');
数值函数
ceil(x)

向上取整

select ceil(1.5);

2

floor(x)

向下取整

select floor(1.9)

1

mod(x,y)

返回x/y的模

select mod(3,4);

3

3/4的余数

rand()

返回0~1内的随机数

round(x,y)

求参数x的四舍五入的值,保留y位小数

select round(2.345,2);

2.35


通过数据库函数,生成一个六位数的随机验证码

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

保留0位小数

日期函数
curdate()

返回当前日期

curtime()

返回当前时间

now()

返回当前日期和时间

year(date)
select year(now());

获取指定date的年份

month(date)

获取指定date的月份

day(date)

获取指定date的日期

date_add(date,interval expr type)

返回一个日期/时间值加上一个时间间隔expr后的时间值

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

从当前日期往后推70天

select date_add(now(),interval 70 year);
datediff(date1,date2)

返回起始时间date1和结束时间date2之间的天数

select datediff('2021-12-01','2021-10-01');

查询所有员工的入职天数,并根据入职天数倒序排序

select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydays desc;

当前日期-入职日期

流程函数
if(value,t,f)

如果value为true,则返回t,否则返回f

select if(true,'ok','error');
ifnull(value1,value2)

如果value1不为空,返回value1,否则返回value2

select ifnull('ok','default');
select ifnull('','default');
select ifnull(null,'default');

default

case when [val1] then [res1] ... else [default] end

如果val1为true,返回res1,...否则返回default默认值

查询emp表的员工姓名和工作地址(北京/上海 -----> 一线城市 ,其他 -----> 二线城市)

select 
    name,
    (case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from emp;
case [expr] when [val1] then [ res1] ... else [default] end

如果expr的值等于val1,返回res1,...否则返回default默认值


统计班级各个学员的成绩,展示的规则如下:

-- >= 85 ,展示优秀

-- >= 60,展示及格

-- 否则,展示不及格

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值