字符串函数
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,展示及格
-- 否则,展示不及格