当前位置: 移动技术网 > IT编程>数据库>Mysql > mysql学习【第4篇】:MySQL函数

mysql学习【第4篇】:MySQL函数

2019年01月14日  | 移动技术网IT编程  | 我要评论

狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! 

mysql学习【第4篇】:mysql函数

官方文档 :

常用函数

分类: 数学函数 , 字符串函数 , 日期和时间函数 , 系统信息函数

# 数学函数 (这里只列出一些常用的)

select abs(-8);  /*绝对值*/

select ceiling(9.4);  /*向上取整*/

select floor(9.4);  /*向下取整*/

select rand();  /*随机数,返回一个0-1之间的随机数*/

select sign(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/


#字符串函数

select char_length('狂神说坚持就能成功'); /*返回字符串包含的字符数*/

select concat('我','爱','程序');  /*合并字符串,参数可以有多个*/

select insert('我爱编程helloworld',1,2,'超级热爱');  /*替换字符串,从某个位置开始替换某个长度*/

select lower('kuangshen'); /*小写*/

select upper('kuangshen'); /*大写*/

select left('hello,world',5);  /*从左边截取*/

select right('hello,world',5);  /*从右边截取*/

select replace('狂神说坚持就能成功','坚持','努力');  /*替换字符串*/

select substr('狂神说坚持就能成功',4,6); /*截取字符串,开始和长度*/

select reverse('狂神说坚持就能成功'); /*反转*/


#日期和时间函数

select current_date();   /*获取当前日期*/
select curdate();   /*获取当前日期*/

select now();   /*获取当前日期和时间*/
select localtime();   /*获取当前日期和时间*/
select sysdate();   /*获取当前日期和时间*/

/*获取年月日,时分秒*/
select year(now());
select month(now());
select day(now());
select hour(now());
select minute(now());
select second(now());


#系统信息函数
select version();  /*版本*/
select user();  /*用户*/


# 查询姓李的同学,改成立
select replace(studentname,'李','历') as 新名字
from student where studentname like '李%';

 聚合函数

#聚合函数

/*count:非空的*/
select count(studentname) from student;
select count(*) from student;
select count(1) from student;  /*推荐*/


select sum(studentresult) as 总和 from result;
select avg(studentresult) as 平均分 from result;
select max(studentresult) as 最高分 from result;
select min(studentresult) as 最低分 from result;


# 查询不同课程的平均分,最高分,最低分
# 前提:根据不同的课程进行分组

select subjectname,avg(studentresult) as 平均分,max(studentresult) as 最高分,min(studentresult) as 最低分
from result as r
inner join `subject` as s
on r.subjectno = s.subjectno
group by r.subjectno
having 平均分>80;

/*
where写在group by前面.
要是放在分组后面的筛选
要使用having..
*/

 

 mysql之自定义函数

什么是函数:

    函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。
    但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。

    函数与存储过程的区别:函数只会返回一个值,不允许返回一个结果集。函数强调返回值,所以函数不允许返回多个值的情况,即使是查询语句。

函数的创建:

/*语法*/
create function 函数名([参数列表]) returns 数据类型
begin
 sql语句;
 return 值;
end;

/*参数列表的格式是:  变量名 数据类型*/

-- 最简单的仅有一条sql的函数
create function myselect2() returns int return 666;
select myselect2(); -- 调用函数

--
create function myselect3() returns int
begin 
    declare c int;
    select id from class where cname="python" into c;
    return c;
end;
select myselect3();
-- 带传参的函数
create function myselect5(name varchar(15)) returns int
begin 
    declare c int;
    select id from class where cname=name into c;
    return c;
end;
select myselect5("python");

补充:

    还可以有一些特别的选项,特别的选项写在return 之后,begin之前,如:
        comment:一个关于函数的描述
         还有一些比如sql security等选项,有兴趣可以自行百度。这里不讲解,仅一提有此知识点。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网