失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL---- 自定义函数(FUNCTION)

MySQL---- 自定义函数(FUNCTION)

时间:2022-11-13 15:59:07

相关推荐

MySQL---- 自定义函数(FUNCTION)

MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。

自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。

创建自定义函数

CREATE FUNCTION <函数名> ( [ <参数1> <类型1> [ , <参数2> <类型2>] ] … )RETURNS <类型><函数主体>

<函数名>:指定自定义函数的名称。注意,自定义函数不能与存储过程具有相同的名称。<参数><类型>:用于指定自定义函数的参数。这里的参数只有名称和类型,不能指定关键字 IN、OUT 和 INOUTRETURNS<类型>:用于声明自定义函数返回值的数据类型。其中,<类型>用于指定返回值的数据类型<函数主体>:自定义函数的主体部分,也称函数体。所有在存储过程中使用的 SQL 语句在自定义函数中同样适用,包括前面所介绍的局部变量、SET 语句、流程控制语句、游标等。除此之外,自定义函数体还必须包含一个RETURN<值>语句,其中<值>用于指定自定义函数的返回值

RETURN VALUE语句中包含 SELECT 语句时,SELECT 语句的返回结果只能是一行且只能有一列值。

调用自定义函数

SELECT 自定义函数名();

查看自定义函数

#查看自定义函数SHOW FUNCTION STATUS;#查看具体自定义函数SHOW CREATE FUNCTION<函数名>;

修改自定义函数

可以使用ALTER FUNCTION语句来修改自定义函数的某些相关特征。若要修改自定义函数的内容,则需要先删除该自定义函数,然后重新创建

删除自定义函数

自定义函数被创建后,一直保存在数据库服务器上以供使用,直至被删除。删除自定义函数的方法与删除存储过程的方法基本一样,可以使用 DROP FUNCTION 语句来实现

DROP FUNCTION [IF EXISTS ] <自定义函数名>

自定义函数和存储过程区别

存储过程实现的功能要复杂一点,函数实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作存储过程来说可以返回参数,如记录集,函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类;存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。存储过程,可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用)由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数

如果觉得《MySQL---- 自定义函数(FUNCTION)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。