Mysql学习第二天-函数

函数:是指一段可以直接被另一段程序调用的程序或代码。

1:字符串函数:

- concat :字符串拼接
select concat('hello','Mysql');

-- lower :将字符串转化为小写
select  upper('Hello');

-- upper
select upper('Hello');

-- lpad:在01字符串前面添加3个‘-’,字符全部占据5个字符:---01
select lpad('01',5,'-');

-- rpad:在‘01’字符后面添加‘-1’,使其占据5个字符位置:01-1-
select rpad('01',5,'-1');

-- trim :去除头部与尾部的空格,中间的空格不会去除。:Hello Mysql
select trim('   Hello Mysql');

-- substring:返回字符串从其实位置起,len个长度的字符串。
select substring('Hello World',1,5);

-- 由于业务需求变更,企业员工的工号,统一为5位数,不足5位数的前面补0,
update emp set workno=lpad(workno,5,'0');

2:数值函数:

-- ceil 向上取整
select ceil(1.1);
-- floor 向下取整
select floor(1.9);
-- mod:取模
select mod(5,4);
-- rand:取随机数,范围是(0,1);
select rand();
-- round:保留两位小数
select round(2.345,2);

-- 通过数据库函数,生成一个六位数的随机验证码
select lpad(round(rand(),6)*1000000,6,'0');

3:日期函数:

-- 日期函数
-- curdate:显示当前的日期
select curdate();

-- curtime:显示当前的时间
select curtime();
-- now:显示当前的日期加时间
select now();
-- year , month ,day:获取指定日期的年月日
select year(now());
select month(now());
select day(now());

-- date_add:向后推迟时间
select date_add(now(),interval 70 year );

-- datediff:求两个时间的差:第一个-第二个
select datediff(now(),'2021-6-6');

-- 查询所有员工的入职天数,并根据入职天数倒序排序
 select name,diff(curdate(),enterdate) as 'enterdays' from emp order by enterdays desc;

 4:流程函数

-- 流程控制函数
-- if:如果第一个值为true,返回第二个值,如果第一个值为false,返回第三个值
select  if(false,'ok','error');

-- ifnull
select  ifnull('','value');-- 返回‘’;
select  ifnull('ko','value');-- 返回'value'
select  ifnull(null,'value');-- 返回‘value'

-- case when then else end
-- 需求:查询emp的员工姓名和工作地址(将北京,上海改为一线城市,其他为二线城市
 select
 name,
(case workadress when '北京’ then '一线城市‘ when '北京’ then '一线城市‘ else ’二线城市‘ end) as '工作地址’;
from emp;

--
 select
   id,
  name,
   (case when math>=85 then '优秀‘ when math >= 60 then '及格' else '不及格' end) as '数学',

 (case when chinese>=85 then '优秀‘ when chinese >= 60 then '及格' else '不及格' end) as '语文',
 (case when english>=85 then '优秀‘ when english >= 60 then '及格' else '不及格' end) as '英语',
 from emp;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值