单行函数+分组函数总结(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)的主要内容,如果未能解决你的问题,请参考以下文章