1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
MySQL的存储过程与函数的联系与区别是怎样的?
存储过程是用户定义的一系列SQL语句的集合,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。函数是为其他程序服务的,需要在其他语句中调用函数才可以,而存储过程不能被其他语句调用,是自己通过CALL语句来执行的。存储过程和函数都是属于某个数据库的。
存储过程与函数的区别主要在于以下几个方面:
1)一般来说,存储过程实现的功能要复杂点,而函数实现的功能针对性比较强。存储过程可以执行包括修改表等一系列数据库操作,用户定义函数则不能执行一组修改全局数据库状态的操作。
2)参数不同。存储过程的参数可以有IN、OUT、INOUT三种类型,而函数只能有IN一种类型。
3)返回值不同。对于存储过程来说可以返回参数,如记录集,而函数则只能返回值或表对象;函数只能返回一个变量,而存储过程可以返回多个;存储过程声明时不需要返回类型,而函数声明时则需要描述返回类型,且函数中必须包含一个有效的RETURN语句。
4)存储过程可能使用非确定函数,而函数不允许在主体中内置非确定函数。
5)调用方式不同。SQL语句中不可以使用存储过程,存储过程只能通过CALL语句进行调用,但函数是嵌入在SQL中使用的,它可以作为SELECT查询语句的一部分来调用,就像内建函数一样,例如AVG()、SUN()。
评论
有用 4
墨值悬赏