一.常用函数
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);
- SUM():求和。常与GROUP BY一起使用,也可单独使用
select sid,sum(score) from t_score group by sid
- AVG():求平均值。常与GROUP BY一起使用,也可单独使用
select sid,avg(score) from t_score group by sid
- MAX():求最大值。常与GROUP BY一起使用,也可单独使用
select sid,max(score) from t_score group by sid
- MIN():求最小值。常与GROUP BY一起使用,也可单独使用
select sid,min(score) from t_score group by sid
- COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用
select sid,count(*) from t_score group by sid
三.合并(union)
- UNION:将所有的查询结果合并到一起,然后去除掉相同的记录
select 'a','b','c' union
select 'a','b','c'
- UNION ALL:将所有的查询结果合并到一起,不会去除掉系统的记录
select 'a','b','c' union all
select 'a','b','c'
前提条件:结果集列数个数相同,列的类型还要相同或是兼容
使用场景:在项目统计报表模块,用来合并数据