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();

结果:

MYSQL 嵌套循环 mysql聚合函数嵌套_常用函数


2)、DAY()\MONTH()\YER():获取日期中的天\获取日期中的月份\获取日期中的年份(这里就用DAY()做例子)

select day(now());

结果

MYSQL 嵌套循环 mysql聚合函数嵌套_字符串_02


3)、日期转换函数DATE_FORMAT():将日期格式化,将日期转换成字符串(输出自己想要的格式)

select date_format('2020-07-15','%Y.%m.%d')

结果:

MYSQL 嵌套循环 mysql聚合函数嵌套_数据库函数_03


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('阿斯顿')

结果:

MYSQL 嵌套循环 mysql聚合函数嵌套_常用函数_04

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
  1. COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用
select sid,count(1) from t_score group by sid

三、合并(union)

  1. UNION:将所有结果合并到一起,并去除重复值
  2. UNION ALL:将所有的查询结果合并到一起,不会去除掉系统的记录
select 'a','b','c' UNION ALL select 'a','b','c'

结果:

MYSQL 嵌套循环 mysql聚合函数嵌套_常用函数_05

select 'a','b','c' UNION  select 'a','b','c'

结果:

MYSQL 嵌套循环 mysql聚合函数嵌套_MYSQL 嵌套循环_06


使用条件:结果集列数个数相同,列的类型还要相同或是兼容

使用场景:在项目统计报表模块,用来合并数据