【存储过程和函数好像差不多,你说说他们有什么区别?】-面试回答

面试回答:
存储过程和函数都是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
当然,他们也有一定的区别:
首先就是他们的标识符不同,函数使用的是function,而存储过程使用的是procedure;
函数可以返回单个值或者表对象,而存储过程则没有返回值;
相对而言,函数的限制较多;
函数实现的功能针对性较强,而存储过程实现的功能则要复杂一点;
函数的参数只能是in类型,而存储过程的参数则可以是in、out、inout三种类型;
他们的调用方式也有所不同,函数使用select调用,而存储过程使用call调用。

相同点
● 存储过程和函数都是为了可重复的执行操作数据库的 SQL 语句的集合。
● 存储过程和函数都是一次编译后缓存起来,下次使用就直接命中已经编译好的 sql 语句,减少网络交互提高了效率。
不同点
● 标识符不同,函数的标识符是 function,存储过程是 procedure。
● 函数返回单个值或者表对象,而存储过程没有返回值,但是可以通过OUT参数返回多个值。
● 函数限制比较多,比如不能用临时表,只能用表变量,一些函数都不可用等,而存储过程的限制相对就比较少。
● 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强
● 函数的参数只能是 IN 类型,存储过程的参数可以是IN OUT INOUT三种类型。
● 存储函数使用 select 调用,存储过程需要使用 call 调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值