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

Posted 桃陉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单行函数+分组函数总结(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(*) 计算当前表儿顶总行数

以上是关于单行函数+分组函数总结(MySQL)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中的常见函数之单行函数

MySQL中的常见函数之单行函数

MySQL 多表查询

MySQL学习笔记常用单行和分组函数

MySQL笔记--- 部分 DQL 语句;条件查询;排序;分组函数;单行处理函数;group by ,having ;

MySQL基础篇总结