mysql学习【第4篇】:MySQL函数
程序员文章站
2022-06-22 20:17:21
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习【第4篇】:MySQL函数 官方文档 : 官方文档 常用函数 分类: 数学函数 , 字符串函数 , 日期和时间函数 , 系统信息函数 聚合函数 mysql之自定义函数 什么是函数: ......
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 !
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等选项,有兴趣可以自行百度。这里不讲解,仅一提有此知识点。