当前位置:网站首页>MySQL之函数
MySQL之函数
2022-07-05 23:56:00 【lion tow】
目录
一、日期函数
1) NOW():获取当前日期和时间
2) DAY():获取日期中的天
3) MONTH():获取日期中的月
4) YEAR():获取日期中的年
5) 日期转换函数DATE_FORMAT()/STR_TO_DATE()
① NOW():获取当前日期和时间
select now();
②DAY():获取日期中的天
select day(now());
③MONTH():获取日期中的月
select MONTH(now());
④ YEAR():获取日期中的年
select year(now());
⑤日期转换函数DATE_FORMAT()/STR_TO_DATE()
DATE_FORMAT():将日期转换成字符串
select now(),DATE_FORMAT(now(),'%Y年%m月%d日')
STR_TO_DATE():将字符串转换成日期
select STR_TO_DATE('2022-12-12','%Y-%m-%d')
案例一:查询各学生的年龄,只按年份来算
select s.*,YEAR(now())-year(s.sage) from t_student s案例二:按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
select s.*,YEAR(now())-year(s.sage)+if(month(now())<MONTH(s.sage),-1,0) from t_student s
案例三:查询本月过生日的学生(没有的话则显示为NULL)
select * from t_student where MONTH(now()) = MONTH(sage);
案例四:查询下月过生日的学生(两种方法):
select * from t_student where MONTH(now())+1 = MONTH(sage);
select * from t_student where date_add(NOW(), interval 1 MONTH) = MONTH(sage);
二、字符串函数
2.字符串函数
1) UPPER()/LOWER():大小写互转
2) REPLACE():搜索并替换字符串中的子字符串
3) SUBSTRING():从具有特定长度的位置开始的最一个子字符串
4) TRIM():去除前后空格
5) LENGTH():获取字符串长度
6) CONCAT():合并字符串函数,结果为连接参数产生的字符串,参数可以是一个或多个
3.数字函数
1)FLOOR:向下取整
2)CEIL: 向上取整
3)ROUND:四舍五入
① UPPER() / LOWER():大小写互转
select upper(' beautiful girl ')
select lower(' GOOD MAN') 

②REPLACE():搜索并替换字符串中的子字符串
select 'zhangqiag',REPLACE('zhang-qiag','-',' ');

③ SUBSTRING():从具有特定长度的位置开始的最一个子字符串
select SUBSTRING('zhang qiang na li',2,5)//从第几个开始到第几个结束
select SUBSTRING('zhang qiang na li',5)//从第几个开始,直到结束 ④ TRIM():去除前后空格
⑤ LENGTH():获取字符串长度
select LENGTH(' zhang qiang na li'),LENGTH(trim(' zhang qiang na li '))
⑥CONCAT():合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个
select CONCAT('zhangqiang111','nali222');
⑦FLOOR:向下取整
⑧CEIL: 向上取整
⑨ROUND:四舍五入
select FLOOR(-3.14),FLOOR(3.14), CEIL(-3.14), CEIL(3.14),round(-3.14),round(3.14)
三、条件判断函数
1)IF(expr,v1,v2) 如果expr是TRUE则返回v1,否则返回v2
2)IFNULL(v1,v2) 如果v1不为NULL,则返回v1,否则返回v2
3)CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END
如果expr等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不想等,则返回ELSE后面的rn
①IF(expr,v1,v2) 如果expr是TRUE则返回v1,否则返回v2
②IFNULL(v1,v2) 如果v1不为NULL,则返回v1,否则返回v2
SELECT
s.sid,
s.sname,
sum( IF ( sc.cid = '01', sc.score, 0 ) ) 语文,
sum( IF ( sc.cid = '02', sc.score, 0 ) ) 数学,
sum( IF ( sc.cid = '03', sc.score, 0 ) ) 英语
FROM
t_student s
LEFT JOIN t_score sc ON s.sid = sc.sid
GROUP BY s.sid,s.sname
③case ...when....
select
s.sid,s.sname,
SUM(case when sc.cid='01' then sc.score end) 语文,
SUM(case when sc.cid='02' then sc.score end) 数学 ,
SUM(case when sc.cid='03' then sc.score end) 英语
from
t_student s left join t_score sc on s.sid=sc.sid
group by s.sid,s.sname四、合并函数
1)UNION:将所有的查询结果合并到一起,然后去除掉相同的记录
2)UNION ALL:将所有的查询结果合并到一起,不会去除掉相同的记录
①UNION:将查询结果合并到一起,然后去除掉相同的记录
select 1,'zs',18
union
select 2,'ls',22
union
select 2,'ls',22②UNION ALL:将所有的查询结果合并到一起,不会去除掉相同的记录
select 1,'zs',18
union all
select 2,'ls',22
union all
select 2,'ls',22五、聚合函数
聚合函数(SUM/COUNT/AVG/MAX/MIN)
SUM():求和。常与GROUP BY一起使用,也可单独使用
AVG():求平均值。常与GROUP BY一起使用,也可单独使用
MAX():求最大值。常与GROUP BY一起使用,也可单独使用
MIN():求最小值。常与GROUP BY一起使用,也可单独使用
COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用
上次分享过了这次在提一下!
边栏推荐
猜你喜欢

4点告诉你实时聊天与聊天机器人组合的优势

时区的区别及go语言的time库

用列錶初始化你的vector&&initializer_list簡介

如何让同步/刷新的图标(el-icon-refresh)旋转起来

PADS ROUTER 使用技巧小记

Use mapper: --- tkmapper

多普勒效應(多普勒頻移)

The use of El cascader and the solution of error reporting

软件测试工程师必会的银行存款业务,你了解多少?

After summarizing more than 800 kubectl aliases, I'm no longer afraid that I can't remember commands!
随机推荐
行列式学习笔记(一)
SpreadJS 15.1 CN 与 SpreadJS 15.1 EN
In C#, why can't I modify the member of a value type instance in a foreach loop?
Biased sample variance, unbiased sample variance
GD32F4xx uIP协议栈移植记录
JVM details
PV static creation and dynamic creation
Use CAS instead of synchronized
上门预约服务类的App功能详解
Problem solving win10 quickly open ipynb file
Fiddler Everywhere 3.2.1 Crack
Detailed explanation of APP functions of door-to-door appointment service
Breadth first search open turntable lock
Spire.PDF for NET 8.7.2
Laser slam learning record
There is no network after configuring the agent by capturing packets with Fiddler mobile phones
PV静态创建和动态创建
CAS and synchronized knowledge
单商户V4.4,初心未变,实力依旧!
Transport layer protocol ----- UDP protocol





