MySQL常见函数

122 篇文章 2 订阅
117 篇文章 0 订阅

一、单行函数

1.1 字符函数

  1. length(str):统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)
  2. concat(str1, str2):拼接字符
  3. substr/substring(str, n1 [,n2]):切割字符,n1起始位置(mysql下标从1开始),n2可选,表示切割长度
  4. instr(str1, str2):返回str2在str1中首次出现的位置;如果没有找到,则返回0。不区分大小写。
  5. trim(str [, substr]):取出字符串前后的substr字符串,默认为空格
  6. upper(str):字母变大写
  7. lower(str):字母变小写
  8. lpad(str1,length,str2)。其中str1是第一个字符串,length是结果字符串的长度,str2是一个填充字符串。如果str1的长度没有length那么长,则使用str2填充;如果str1的长度大于length,则截断。
  9. rpad(str1, length, str2):参考lpad
  10. replace(object,search,replace):把object对象中出现的的search全部替换成replace。

1.2 数学函数

  1. round(num, 2):四舍五入,保留两位小数
  2. ceil(num):向上取整
  3. floor(num):向下取整
  4. truncate(num, 2):从小数点后两位直接截断,比如truncate(3.1415926, 3) = 3.141
  5. mod(num, 2):求余数 num % 2

1.3 日期函数

  1. now():当前系统时间,1997-06-03 19:23:12
  2. curdate():当前系统时间的日期,1997-06-03
  3. curtime():当前系统时间的时间,19:23:12
  4. year():年份,1997
  5. month():月,6
  6. monthname():英文形式,June
  7. day():日, 3
  8. hour():小时, 19
  9. minute():分钟, 23
  10. second():秒, 12
  11. str_to_date(“1997-06-03 19:23:12”, "%Y-%m-%d %H:%i:%s):通过后面的模式将前面的字符串进行转换成date格式
  12. date_format(“1997/6/3”, “%Y年%m月%d日”):将日期转为字符,1997年6月3日
  13. datediff(date1, date2):

在这里插入图片描述

1.4 控制函数

  1. if:类似于三元运算符
    在这里插入图片描述

  2. case:
    第一种情况:类似于switch…case…
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    第二种情况:类似于多重if
    在这里插入图片描述
    在这里插入图片描述

1.5 其他函数

  1. version:版本
  2. database:当前数据库
  3. user:当前用户

二、分组函数

功能:用作统计使用,又称为聚合函数或统计函数或组函数。
分类:sum,avg,max,min,count

2.1 简单使用

select sum(salary) from employees;
select avg(salary) from employees;
select max(salary) from employees;
select min(salary) from employees;
select count(salary) from employees;

select sum(salary) 和, avg(salary) 平均值, max(salary) 最大值, min(salary) 最小值, count(salary) 个数 
from employees;
# 对平均值四舍五入保留两位小数
select sum(salary) 和, round(avg(salary), 2) 平均值, max(salary) 最大值, min(salary) 最小值, count(salary) 个数 
from employees;

2.2 参数支持哪些类型

  1. sum、avg一般用于处理数值型(不报错,但没意义)
  2. max,min,count可以处理任何类型

2.3 是否忽略null值

sum,avg,max,min,count都忽略null值

2.4 和distinct搭配

select sum(distinct salary), sum(salary) from employees;
select count(distinct salary), count(salary) from employees;

2.5 count函数的详细介绍

select count(salary) from employees;
# 统计行数
select count(*) from employees;  # 只要有一列不为null,行数便+1,不可能一行所有列同时为null(因为也不算数)
select count(1) from employees;  # 原理是添加一列,该列所有行填充1,统计1的个数,也可以使用其他常量代替

效率:

  • MyISAM:count(*)效率高
  • InnoDB:count(*)和count(1)差不多,比count(字段名)要高一些

2.6 和分组函数一同查询的字段有限制

和分组函数一同查询的字段要求是group by后的字段

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值