数据库的存储过程创建与自定义函数的创建很相似,对于初学者来说,不太容易理解,在此分享一下自身对存储过程提的“感性”解释。
过程体就好比是和数据库的一种事先约定:执行一次过程体之后,数据库就明白以后传过来的这种东西(参数)就是按照约定的某个规则来处理,所以不需要再次编译,因此执行效率高。
比如一开始你就和A(A代表数据库)约定:以后给A一袋苹果,A就拿来吃;如果给A一支笔,A就拿来写字;如果给A一个豆豆,A就打豆豆,这些就是约定的规则(称为过程体),A执行了一次命令之后,以后你再递给A一袋苹果、一支笔、一个豆豆的时候,就不需要和A再沟通了(也就是不需要再编译了),你压根不用说话,A就已经知道你要做什么了,直接执行,所以效率很高。
主要区别是:过程体可以返回多个值;函数只能有一个返回值。
过程体就好比是和数据库的一种事先约定:执行一次过程体之后,数据库就明白以后传过来的这种东西(参数)就是按照约定的某个规则来处理,所以不需要再次编译,因此执行效率高。
比如一开始你就和A(A代表数据库)约定:以后给A一袋苹果,A就拿来吃;如果给A一支笔,A就拿来写字;如果给A一个豆豆,A就打豆豆,这些就是约定的规则(称为过程体),A执行了一次命令之后,以后你再递给A一袋苹果、一支笔、一个豆豆的时候,就不需要和A再沟通了(也就是不需要再编译了),你压根不用说话,A就已经知道你要做什么了,直接执行,所以效率很高。
主要区别是:过程体可以返回多个值;函数只能有一个返回值。