mysql常用函数、聚合函数、合并
- 一、常用函数
- 1、日期函数
- 2、字符串函数
- 3、数字函数
- 二、聚合函数
- 三、合并(union)
一、常用函数
1、常用函数一般指的是数据库的系统函数,数据库函数是指当需要分析数据清单中的数值是否符合特定条件时,使用数据库函数来完成目标操作;
2、函数还可以指自己定义的函数,定义的一般方法及使用:
①、类似与java的定义方法;
②:可以带参数;
③:一定要有返回值(一行一列,注:java方法中可以没有返回值,数据库函数必须要有返回值);
④:函数可以嵌套到sql语句中去;(存储过程不可以)
⑤:函数可以嵌套使用。
基本语法语法:
create function(参数1 类型,参数2 类型)
return 类型
begin
declare 内部变量 类型 default 初始值;
declare 内部变量 类型 default 初始值;
return 返回值
end
注:参数的模式有三种:(如果没有注明,那默认为in)
①in:为只读模式,在函数中,参数的值只能被引用,不能被修改;
②out:为只写模式,只能被赋值,不能被引用;
③in out:可读可写。
删除函数:
drop function selectName;
调用函数(根据数据库的不同,也会有一点差别):
select selectName(7369);
1、日期函数
1)、NEW():获取到当前的时间
select now();
结果:
2)、DAY()\MONTH()\YER():获取日期中的天\获取日期中的月份\获取日期中的年份(这里就用DAY()做例子)
select day(now());
结果
3)、日期转换函数DATE_FORMAT():将日期格式化,将日期转换成字符串(输出自己想要的格式)
select date_format('2020-07-15','%Y.%m.%d')
结果:
4)、日期转换函数STR_TO_DATE():将字符串转换成日期(一般会自动转)
2、字符串函数
1)、upper():将小写转化为大写
select UPPER('asdf')
2)、lower():将大写转化为小写
select UPPER('asdf')
3)、replace():搜索并替换字符串中的子字符串
select REPLACE('asdfa','a','x');
4)、substring():在字符串从第一个参数截取第二个参数的数目
select substring('asdfgh',2,3);
5)、trim():去除前后空格
select trim(' qwe')
6)、lenth():得到这个字符串的长度(注:在mysql中,汉字是3,字母就是1)
select length('阿斯顿')
结果:
3、数字函数
1)、floor():向下取最大整数
select FLOOR(3.14);
2)、ceil():向上取最小整数
select CEIL(3.14)
3)、round():四舍五入
select ROUND(3.14)
二、聚合函数
建表:t_score
create table t_scoret(
sid int,
cid int,
score int
);
插入数据:
insert into t_score values('01' , '01' , 80);
insert into t_score values('01' , '02' , 90);
insert into t_score values('01' , '03' , 99);
insert into t_score values('02' , '01' , 70);
insert into t_score values('02' , '02' , 60);
insert into t_score values('02' , '03' , 80);
insert into t_score values('03' , '01' , 80);
insert into t_score values('03' , '02' , 80);
insert into t_score values('03' , '03' , 80);
insert into t_score values('04' , '01' , 50);
insert into t_score values('04' , '02' , 30);
insert into t_score values('04' , '03' , 20);
insert into t_score values('05' , '01' , 76);
insert into t_score values('05' , '02' , 87);
insert into t_score values('06' , '01' , 31);
insert into t_score values('06' , '03' , 34);
insert into t_score values('07' , '02' , 89);
insert into t_score values('07' , '03' , 98);
1)、sum():求和,常于group by一起使用,也可单独使用
select sum(score) from t_score
2)、avg():求平均值,常于group by一起使用,也可单独使用
select sid,avg(score) from t_score group by sid
3)、max():求最大值,常于group by一起使用,也可单独使用
select sid,max(score) from t_score group by sid
4)min():求最小值,常于group by一起使用,也可单独使用
select sid,min(score) from t_score group by sid
- COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用
select sid,count(1) from t_score group by sid
三、合并(union)
- UNION:将所有结果合并到一起,并去除重复值
- UNION ALL:将所有的查询结果合并到一起,不会去除掉系统的记录
select 'a','b','c' UNION ALL select 'a','b','c'
结果:
select 'a','b','c' UNION select 'a','b','c'
结果:
使用条件:结果集列数个数相同,列的类型还要相同或是兼容
使用场景:在项目统计报表模块,用来合并数据