暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

知识点 | 存储过程和函数好像差不多,有啥区别?

原创 杨磊 2021-11-05
1361

存储过程是一条或多条sql语句集合,有以下一些特点:

  1. 存储过程能实现较快的执行速度。
  2. 存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
  3. 存储过程可被作为一种安全机制来充分利用。
  4. 存储过程能够减少网络流量
delimiter 分隔符
create procedure|proc proc_name()
begin
sql语句
end 分隔符
delimiter ;--还原分隔符,为了不影响后面的语句的使用

--默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外)
show procedure status like ""; --查询存储过程,可以不适用like进行过滤
drop procedure if exists;--删除存储过程

存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合;
调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

相同点

  1. 存储过程和函数都是为了可重复的执行操作数据库的 SQL 语句的集合。
  2. 存储过程和函数都是一次编译后缓存起来,下次使用就直接命中已经编译好的 sql 语句,减少网络交互提高了效率。

不同点

  1. 标识符不同,函数的标识符是 function,存储过程是 procedure。
  2. 函数返回单个值或者表对象,而存储过程没有返回值,但是可以通过OUT参数返回多个值。
  3. 函数限制比较多,比如不能用临时表,只能用表变量,一些函数都不可用等,而存储过程的限制相对就比较少。
  4. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强
  5. 函数的参数只能是 IN 类型,存储过程的参数可以是IN OUT INOUT三种类型。
  6. 存储函数使用 select 调用,存储过程需要使用 call 调用。

文章结束。

最后修改时间:2021-11-05 18:50:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论