mysql数据处理函数和分组函数
mysql数据处理函数
1.单行数据处理函数
Lower 转换小写
upper 转换大写
substr 取子串(subste(被截取的字符串,起始下标,截取的长度))
length 取长度
trim 去除字符串前后空格
str_to_date 将字符串转换成日期
date_format 格式化日期
format 设置千分位
round 四舍五入
rand() 生产随机数(0~1之间)
Ifnull 可以将null转换成一个具体值
注意:数据处理函数是该数据库本身特有的,有些函数可能在其它数据库不起作用
例子演示:
select lower(ename) as lowername from emp; #将ename字段转换成小写并取别名lowername
select substr(ename,1,1) as ename from emp; #截取员工名称字段首字母
select length(ename) as enameLength from emp; #获取ename字段的长度
select * from emp where ename = trim(' king '); #去掉字符串前后空格
select ename,(sal+ifnull(comm,0))*12 as yearsal from emp; #计算薪水实际年薪
select ename,hiredate from emp where hiredate = '1981-12-03'; #查询1981年12月3日入职的员工信息
select ename,hiredate from emp where hiredate = str_to_date('12-03-1981','%m-%d-%Y');
date_format 格式化日期
select date_format(hiredate,'%Y%m%d') as hiredate from emp; # 日期转换
select date_format(hiredate,'%Y/%m/%d') as hiredate from emp; # 日期转换
2.多行数据处理函数
常用以下几种
什么是单行处理函数,什么是多行处理函数?
单行函数是一行输入对应一行输出
多行处理函数都是多行输入对应一行输出
注意:
例子:sum()
select sum(sal) as sunsal from emp; #计算工资总额
select sum((sal+ifnull(comm,0))) as sumsal from emp;
select sum(comm) as sumcomm from emp; #分组函数会自动忽略空值
例子:avg()
select avg(sal) as avgsal from emp; # 计算公司平均薪水
例子:max()
select max(sal) as maxsal from emp;
例子:min()
select min(sal) as minsal from emp;
例子:count()
select count(*) from emp where comm is null; #统计没有补助的人数(*按行统计)
select count(comm) as empNum from emp; #统计有补助的人数(自动忽略空值)
select count(*) from emp where comm is not null; #统计有补助的人数(*按行统计)
distinct去除重复记录
例子:
select distinct job from emp; #查询公司有那些工作岗位
select count(distinct job) from rmp; #查询公司有那些工作岗位
select distinct deptno,job from emp order by deptno; #去除部门编号deptno和工作岗位job重复的记录
分组查询:group by
例子:
select job,max(sal) as maxsal from emp group by job; #找出每个工作岗位的最高薪水