单行函数+分组函数总结(MySQL)


前言

介绍MySQL的单行函数操作我们选择使用可视化软件Navicat,对应的数据库使用了某公司员工数据库,该数据库包含员工信息表、部门信息表、公司地址信息表、工作职业信息表。

单行函数主要包括字符函数、数学函数、日期函数、其他函数、流程控制函数等等。

字符函数

常见的字符函数见下表:

函数格式函数意义注意事项
length(str)返回参数值的字节数在utf8中一个汉字占3个字节,在gbk中一个汉字占两个字节
concat(str1,str2,…)拼接字符串
upper(str)将str中的字母转为大写字母
lower(str)将str中的字母转为小写字母
substr(str,pos)、substr(str,pos,len)截取指定的字符串有多个重载函数,第二个参数pos指的是开始截取的位置,加第三个参数len表示截取的长度。注意mysql中索引从1开始
instr(str,substr)返回子串substr第一次出现的索引,找不到则返回0只返回匹配到的第一个子串的索引
trim(str)、trim(str1 from str)去掉前后空格或前后指定字符 str1有重载函数
lpad(str,len,padstr)使用指定字符padstr左填充到指定长度len
rpad(str,len,padstr)使用指定字符padstr右填充到指定长度len
replace(str,from_str,to_str)使用to_str替换所有from_str全部替换

下面以几个函数作为例子演示:

示例一:substr函数

示例二:trim函数

数学函数

常见的数学函数见下表:

函数格式函数意义
round(X,D)四舍五入到指定小数点后保留位数D
ceil(X)向上取整,返回大于等于该参数的最小整数
floor(X)向下取整,返回小于等于该参数的最大整数
truncate(X,D)截断操作,选择小数点后保留几位
mod(N,M)取余操作,N为被除数,M为除数

下面以几个函数作为例子演示:

示例一:round函数与truncate函数

日期函数

常见的日期函数见下表:

函数格式函数意义
now()返回当前系统日期和时间
curdate()只返回当前日期
curtime()只返回当前时间
year(date)、month(date)、day(date)、hour(time)、minute(time)、second(time)可以获取指定的部分,年、月、日、小时、分钟、秒
monthname(date)返回当前的英文年份
str_to_date(str,format)将日期格式的字符转换为指定格式的日期
date_format(date,format)将日期转换为字符
下面以几个函数作为例子演示:

示例一:now函数、curdate函数、curtime函数

示例二:str_to_date函数

示例三:date_format函数

其他函数

其他重要的函数见下表:

函数格式函数意义
version()返回mysql的版本
database()返回当前所处的数据库
user()返回当前使用者的用户名

这几个函数的演示如下:

流程控制函数

if函数

类似于java中的三元运算符, i f ( e x p r 1 , e x p r 2 , e x p r 3 ) if(expr1,expr2,expr3) if(expr1,expr2,expr3) 如果expr1为true则返回expr2,否则返回expr3.

示例一:奖金率为NULL的员工,备注为无奖金,反之备注为有奖金

case函数

格式一:类似于switch

case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1
when 常量2 then 要显示的值2或语句2

else 要显示的值或语句
end

示例一:部门号为30的员工工资变为1.1倍,40的员工工资变为1.2倍,50的员工变为1.5倍,其余不变

格式二:类似于多重if语句

case
when 常量1 then 要显示的值1或语句1
when 常量2 then 要显示的值2或语句2

else 要显示的值或语句
end

示例二:工资大于20000,显示A等级;大于15000,显示B等级;大于10000显示C等级,其余显示D等级

补充:分组函数

分组函数一般做统计使用(即传入一组值,返回一个值),也被称为统计函数、聚合函数、组函数。主要的分组函数有sum、avg、max、min、count等。

它们的语法都很简单,下面进行演示:

特点

∙ \bullet sum、avg主要处理数值型数据,max、min、count可以处理任何类型数据

∙ \bullet sum、avg忽略null值,count计算非空数据个数

∙ \bullet 均可以和distinct搭配实现去重运算

∙ \bullet 可以直接使用count(*) 计算当前表儿顶总行数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

比奇堡咻飞兜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值