一.常用函数

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)获取当前时间

select now();

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

select day(now());

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

select DATE_FORMAT('2019-7-4','%W %M %D %Y');

4)日期转换函数STR_TO_DATE():将字符串转换成日期(一般会自动转)

select STR_TO_DATE('2019-07-04 11:30:21','%Y-%m-%d %H:%i:%s');

2.字符串函数
1)UPPER():将小写转换为大写

select UPPER('adsf');

2)LOWER():将大写转换为小写

select LOWER('ADSF');

3)REPLACE():搜索并替换字符串中的子字符串

select replace('abcaefg','a','x');

4)SUBSTRING():截取字符串,返回从指定位置开始的指定长度的字符串

select substring('abcdefg',1,3);

5)TRIM():去除前后空格

select trim('           adsf');

6)LENGTH():获取字符串长度(注:在mysql中,一个汉字的长度是3,一个字母的长度就是1)

select length('天天向上');

3.数字函数
1)FLOOR:向下取整

select floor(3.14);

2)CEIL: 向上取整

select ceil(3.14);

3)ROUND:四舍五入

select round(3.4);

二.聚合函数

建表: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 sid,sum(score) from t_score group by sid
  1. AVG():求平均值。常与GROUP BY一起使用,也可单独使用
select sid,avg(score) from t_score group by sid
  1. MAX():求最大值。常与GROUP BY一起使用,也可单独使用
select sid,max(score) from t_score group by sid
  1. MIN():求最小值。常与GROUP BY一起使用,也可单独使用
select sid,min(score) from t_score group by sid
  1. COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用
select sid,count(*) from t_score group by sid

三.合并(union)

  1. UNION:将所有的查询结果合并到一起,然后去除掉相同的记录
select 'a','b','c' union 
select 'a','b','c'
  1. UNION ALL:将所有的查询结果合并到一起,不会去除掉系统的记录
select 'a','b','c' union all
select 'a','b','c'

前提条件:结果集列数个数相同,列的类型还要相同或是兼容
使用场景:在项目统计报表模块,用来合并数据