MYSQL基础(二)——函数

目录

一、字符串函数

 二、数值函数

三、日期函数

四、流程函数: 

学习地址:


 

一、字符串函数

 

-- concat  [字符串拼接]
select concat('Hello','world');

-- lower  [全部转化为 小写]
select lower('HelloWorld');

-- upper  [全部转化为 大写]
select upper('HelloWorld');

-- lpad   [左填充,类似于'/t']
select lpad('01',5,'-');
select lpad('01',9,'#');

-- rpad   [右填充,类似于'/t']
select rpad('01',5,'-');

-- trim   [去除空格,只能去除头部和尾巴,中间的空格不能去除]
select trim(' Hello  world ');

-- substring   [字符串截取 从第个位置截取,截取五个]
select substring('hello world',1,5);   # 截取出了 hello
select substring('hello world',7,5);   # 截取出了 world

-- 1.
将表中的人id改为三位数,位数不足的在前面添0
update emp set name = lpad(name,5,'0');

 二、数值函数

-- ceil   [向上取整]

select ceil(1.1);  # 1



-- floor  [向下取整]

select floor(1.8); # 2



-- mod    [取余数]

select mod(5,4);   # 1



-- rand   [随机数(0-1之间)]

select rand();



-- round  [四舍五入]

select round(2.34567,1); #保留一位小数: 2.3

select round(2.34567,2); #保留两位小数: 2.35

select round(2.34567,3); #保留三位小数: 2.346



-- 随机生成 六位数的验证码:

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

三、日期函数

 

-- curdate()   [当前 年月日]

select curdate();



-- curtime()   [当前 时分秒]

select curtime();



-- now()       [当前 年月日+时分秒]

select now();



-- 分别获得 年月日

select year(now());   #select month(now());  #select day(now());    #-- date_add [往后加多少]

select date_add(now(),INTERVAL 50 year );   #70select date_add(now(),INTERVAL 50 month );  #70select date_add(now(),INTERVAL 50 day );    #70-- datediff [时间相距多少]  [有正负!!!]

select datediff('2020-10-01','2030-10-01');  # -3652

select datediff('2040-10-01','2030-10-01');  #  3652

四、流程函数: 

 

-- if     [true返回第一个参数,false返回第二个参数]

select if(true, 'ok', 'error');   # 返回ok

select if(false, 'ok', 'error');  # 返回error



-- ifnull [如果为空,则返回‘default’,如果不为空,则返回本身 ]

select ifnull('ok','default');  # 返回 ok

select ifnull(null,'default');  # 返回 default



-- case

select

    id as '编号',

    (case when chinese >=90 then '' when chinese >=80 then '' when chinese >=60 then '及格' else '不及格' end) as '数学',

    (case when math    >=90 then '' when math    >=80 then '' when math    >=60 then '及格' else '不及格' end) as '语文',

    (case when english >=90 then '' when english >=80 then '' when english >=60 then '及格' else '不及格' end) as '英语'

from grade;
 
-- 创建成绩数据

insert into grade(id, chinese, math, english) values (1, 60, 70, 80);

insert into grade(id, chinese, math, english) values (2, 90, 80, 85);

insert into grade(id, chinese, math, english) values (3, 50, 60, 65);

学习地址:

黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili本课程是目前为止,MySQL方面最为全面的一套课程,视频知识涵盖了MySQL的基础、进阶、运维等多个方面,不仅讲解知识点的具体应用,还会讲解其底层结构和原理。知识讲解全面、深入,能够完全满足我们日常的开发、运维、面试、以及自我提升,而且在讲解过程中结合多种手段,帮助学生更加清晰的理解课程中的重点和难点内容。https://www.bilibili.com/video/BV1Kr4y1i7ru?p=42&spm_id_from=333.1007.top_right_bar_window_history.content.click

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pan_peter

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

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

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

打赏作者

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

抵扣说明:

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

余额充值