【MySQL】常用函数(笔记)

mysql5.7函数使用

1. 聚集函数

  • avg:求平均值
  • count:计数
  • max:最大值
  • min:最小值
  • sum:最大值
注意:
	聚集函数一般都是在group by 情况下使用的,使用group by查询显示只能显示分组字段(group by后的字段)和聚集函数。
	不使用group by ,则可以把查询到的结果集看做一个组,也可以使用聚集函数,但是使用聚集函数查询到的结果都只有一行。

2. 字符串处理函数

  • concat(str1,str2):连接多个字符串函数,如果字符串中有为null的,则返回null。

  • concat_WS(分隔符,str1,str2): 连接多个字符串,如果字符串中有为null忽略。

  • group_concat([distinct] 非分组字段 [order by ] ,[ SEPARATOR]): 与分组函数使用

    举例:
    SELECT a.index_type,
    	GROUP_CONCAT(
       DISTINCT a.index_id ORDER BY a.index_id DESC SEPARATOR ':'
    	)FROM hc_bank_index_score a
    GROUP BY a.index_type
    结果:
    index_type	index_id
    China		1,2,3,4,5,6
    
  • substr(str,from,to):字符串截取函数。

  • substring_index(str,分隔符,count):字符串截取,截取第‘count‘个分隔符后的字符串

    举例:
    SELECT a.help_topic_id+1 AS num ,
    SUBSTRING_INDEX(SUBSTRING_INDEX('aa,bb,cc,dd,ee,ff,hh,gg',',',a.help_topic_id+1),',',-1) AS value
    FROM  mysql.help_topic a
    WHERE a.help_topic_id<=(
    (LENGTH('aa,bb,cc,dd,ee,ff,hh,gg')-LENGTH(REPLACE('aa,bb,cc,dd,ee,ff,hh,gg',',','')))
    )
    结果:
    num		value
    1		aa
    2		bb
    ...
    
  • length(str):获取字符串字节数函数。

  • char_length(str):获取字符串字符数函数

  • replace(字段名,需要替换字符,替换字符):字符串替换函数

  • 条件判断函数

    • if(条件,result1,result2):类型Java中的三目表达式,条件为”true“为result1,条件为”false“为result2。

    • case when…then…else…end

      1)case when 条件 then 结果 end  : 满足条件,返回结果。
      2)case when condition then result1 else result 2 end : 满足条件,返回result1,否则返回result2。
      3)case when condition1 then result1 
      		when condition2 then result2
      		...
      		else resultn+1 end :满足条件n,返回 resultn。		
      

3. 数值处理

  • round(字段名称,保留小数位数):数值四舍五入
  • rand():随机数函数

4. 类型转换函数

  • convert(str,类型) :类型转换
  • cast(str as 类型):转换类型
    • decimal(精度位数,小数位数):可四舍五入
    • char
    • date

5. 日期处理函数

  • current_date、curdate:获取日期

  • current_time 、curtime:获取时间

  • week(日期,模式):计算周

模式一周的第一天范围起始结束描述
1星期一1~531月1号重头开始计算第一周
3星期一1~5252周结束后开始计算第一周
5星期一0~521月1号重头开始计算第一周
7星期一1~5252周结束后开始计算第一周
0星期日0~531月1号重头开始计算第一周
2星期日1~5353周结束后开始计算第一周
4星期日1~531月1号重头开始计算
6星期日1~5252周结束后开始计算第一周
  • year()、quarter()、month()、day():获取日期的年、季、月、日

    示例:
    2019-12-23   year	2019
    2019-12-23   quater	4
    2019-12-23   month	12
    2019-12-23   week	52(可选模式)
    2019-12-23   day	23
    
  • weekday:返回一周的第几天,从星期一开始计算,下标从0开始计算。

  • dayname、monthname:返回这天是星期几的英文名称

  • date_format(日期字符串,日期格式):日期转字符

    • %Y :4位数表示年

    • %m:2位数表示月

    • %d:2位数表示日

    • 注意:
      日期字符串:
      1)可以由四位表示年数字两位表示月两位表示日,如“20191212”。
      2)以‘/’为分隔符数字串,如“2019/12/12”。
      3)以‘-’为分隔符数字串,如“2019-12-12”。
      4)满足以上要求时,数字串必须符合日期对数字的要求,否则返回null
      日期格式:日期显示的格式,如要显示格式为“2019年12月12日”,则日期格式表达式为“%Y年%m月%d日”。
      
  • str_to_data (字符串,日期格式):字符串转日期

    • %Y :年

    • %m:月

    • %d:日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值