MySQL之函数

目录

一、日期函数

二、字符串函数

三、条件判断函数

四、合并函数

五、聚合函数


一、日期函数

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一起使用,也可单独使用
上次分享过了这次在提一下!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秃头没秃头

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

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

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

打赏作者

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

抵扣说明:

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

余额充值