个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【MySQL学习专栏】🎈
本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌
目录
- 一、字符串函数
- 二、数值函数
- 小练习
- 三、日期函数
- 四、流程函数
一、字符串函数
关于字符串函数请看此文章:字符串函数
二、数值函数
下面来介绍5个数值函数,请看:
函数 | 作用 |
---|---|
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x,y) | 返回x/y的模 |
RAND() | 返回0到1内的随机数 |
ROUND(x,y) | 求参数x的四舍五入的值,并保留y位小数 |
ceil(x):向上取整。
举例:select ceil(1.1);
演示结果:
MOD(x,y):返回x/y的模
举例:select mod(9,2);
演示结果:
rand():返回0到1内的随机数
举例:select rand();
演示结果如下:
round(x,y):求参数x的四舍五入的值,并保留y位小数。
举例:round(8.354,3);
演示结果如下:
小练习
根据数据库语句生成一个6位数的随机验证码:
select lpad(round(rand()*1000000,0),6,'0');
*解释:rand()1000000会生成一个随机数,加上round后保证生成的数是一个整数(此时并不稳定,因为有时生成的数是一个五位数),所以需要加航lpad()函数来进行前补0或者后补0。
三、日期函数
下面是本文的日期函数,请看:
函数 | 功能 |
---|---|
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
NOW() | 返回当前的日期和时间 |
YEAR(date) | 获取指定date的年份 |
MONTH(date) | 获取指定date的月份 |
DAY(date) | 获取指定date的日期 |
DATE_ADD(date,INTERVAL expr type) | 返回一个日期/时间值加上一个时间间隔expr后的时间值 |
DATEDIFF(date1,date2) | 返回起始时间date1和和结束时间之间的date2 |
curdate():返回当前的日期
举例:select curdate();
演示结果:
curtime():返回当前的时间
举例:select curtime();
演示结果如下:
now():返回当前的日期和时间。
举例:select now();
演示结果如下:
YEAR/MONTH/DAY(date):返回当前日期的月份
举例:select month(now());
DATE_ADD(date,INTERVAL expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值
举例:select date_add(now(),interval 100 day);
解释:计算当前日期后的100天是什么时间
演示结果如下:
DATEDIFF(date1,date2):返回两个日期之间相差多少天
举例:select datediff('2023-5-20','2023-1-20');
演示结果如下:
小练习:查询所有人的入职天数,并根据入职天数进行倒序排序。
语句如下:select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydats desc;
四、流程函数
函数 | 功能 |
---|---|
IF(value,t,f) | 如果value为true则返回t,否则返回f |
IFNULL(value1,value2) | 如果value不为空则返回value1,否则返回value2 |
CASE WHEN [val1] THEN [res1] …ELSE[default] END | 如果val1为true,则返回res1,…否则返回default默认值 |
CASE [expr] WHEN [val1] THEN [res1] …ELSE[default] END | 如果expr的值等于val1,返回res1,…否则返回default值 |
举例1:
select ifnull(null,'default');
样例演示:
举例2:
select if(true,'ok','error');
样例演示:
举例3:
这里有一个学员成绩表,我们以此来进行演示,要求:>=85显示优秀,>=60显示及格,否则显示不合格。
select id,name,(case when math >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '数学',(case when chinese >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '语文',(case when english >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '英语'
from score;
演示结果如下:
好了,以上就是本文的全部内容,主要对字符串、数值、日期、流程函数进行了总结。
嗯,就到这里啦,再见啦友友们!!!