定义
咱们以前学习了MySQL的内置函数,传送门,很是丰富,知足了咱们对数据操做的大部分需求。html
可是若是有一些复杂的业务逻辑在数据库层面就能够完成,无需在程序层面完成的时候,这时候就能够写成MySQL自定义函数。mysql
因此,函数是指 一组预编译好的sql语句集合,理解成批处理语句,相似于C# 中的方法,可是必须有返回值。调用函数等于一次性执行了这些语句,有利下降语句重复编写和调用。sql
做用
一、能够高度抽象业务逻辑,前置到数据库层面,而不是应用层面数据库
二、相比于从数据库查询出来,而后程序操做数据,数据库操做必定程度上提升效率。函数
三、高度可复用性,数据库层面的方法封装,不仅是应用在多个一样业务场景。还能够应用到多个不一样语言中。学习
函数的使用
建立函数
1 CREATE FUNCTION func_name(param_list) RETURNSTYPE2 BEGIN
3 --Todo:function body
4 END
一、param_list指的是参数列表,参数是可选的,能够不带参数,也能够带多个参数。参数 包含两部分:参数名 参数类型。
二、函数返回值是必选项,可是只容许返回一个值,不容许返回一个结果集(官方原文:Not allowed to return a result set from a function)。函数强调返回值,因此函数不容许返回多个值的状况,即便是查询语句。这是他会跟存储过程的区别。
三、函数体中若是有多个语句,使用begin end 包含
四、使用 delimiter语句设置结束标记 */ spa
调用函数
SELECT func_name(param_list);
查看函数
1 SHOW FUNCTION STATUS;
查看函数建立脚本
1 SHOW CREATE FUNCTION func_name;
删除函数
1 DROP FUNCTION IF EXISTS func_name;
示例
数据基础
1 mysql> select * fromstudents;2 +-----------+-------------+-------+---------+
3 | studentid | studentname | score | classid