MySQL学习第二弹——常用内置函数及其作用详解

MySQL中常见的内置函数及其作用

函数:是指一段可以直接被另一段程序直接调用的程序或代码。
  • 字符串函数
  • 数值函数
  • 日期函数
  • 流程函数

1、字符串函数

图片1

2、数值函数

图片2

3、日期函数

图片3

4、流程控制函数

图片4

具体函数练习语句如下:
-- 1、字符串函数
-- ----------------------------------------------函数演示-----------------------------------------
-- concat(字符串拼接)
select concat('Hello', 'mysql');
-- lower(字符串转小写)
select lower('Hello');
-- upper(字符串转大写)
select upper('Hello');
-- lpad(对字符串01的左侧进行填充,补到5位,填充的字符为-)
select lpad('01', 5, '-');
-- rpad(对字符串01的右侧进行填充,补到5位,填充的字符为-)
select rpad('01', 5, '-');
-- trim(去除字符串头部和尾部的空格)
select trim('   hello, world.   ');
-- substring
select substring('Hello, mysql', 1,5);

-- 由于业务变更需求,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0.比如:1号员工的工号应为00001。
update emp set workno = lpad(workno,5, '0');

-- 2、数值函数
-- ceil(向上取整)
select ceil(1.1);
-- floor(向下取整)
select floor(1.9);
-- mod(取模)
select mod(3,4);
-- rand(求0,1之间的随机数)
select rand();
-- round(四舍五入取整)
select round(2.34, 1);

-- 通过数据库的函数,生成一个六位数的随机验证码
select lpad(round(rand()*1000000, 0), 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 DAY );
select date_add(now(),INTERVAL 70 MONTH );
select date_add(now(),INTERVAL 70 YEAR );

-- date_diff(求差值是第一个时间-第二个时间)
select datediff('2021-12-01', '2021-11-01');

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

-- 流程函数
-- if
select if(true, 'OK', 'Error');

-- ifnull
select ifnull('OK', 'Default');
select ifnull('', 'Default');
select ifnull(null, 'Default');

-- case when then else end
-- 查询emp表的员工姓名和工作地址(北京/上海------> 一线城市, 其他------->二线城市)
select
    name,
    (case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from emp;

-- 统计班级各个学员的成绩,展示的规则如下:
-- >= 85, 展示优秀
-- >= 60, 展示及格
-- 否则,展示不及格

create table score(
    id      int         comment 'ID',
    name    varchar(20) comment '姓名',
    math    int         comment '数学',
    english int         comment '英语',
    chinese int         comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67,88,95),(2,'Rose', 23,66,90),(3,'Jack', 56,98,76);

select
    id,
    name,
    (case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end) '数学',
    (case when score.english >= 85 then '优秀' when score.english >= 60 then '及格' else '不及格' end) '英语',
    (case when score.chinese >= 85 then '优秀' when score.chinese >= 60 then '及格' else '不及格' end) '语文'
from score;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loveCC_orange

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值