首页 技术文章 数据库 mysql存储过程与存储函数的区别是什么
正文 评论

mysql存储过程与存储函数的区别是什么

区别:1、存储函数的限制比较多,而存储过程的限制较少;2、存储过程的实现功能要复杂些,而存储函数的实现功能针对性比较强;3、存储函数必须有一个返回值,而存储过程可以没有返回值;4、调用时的不同;5、参数的不同。

mysql存储过程与存储函数的区别是什么

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性。本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用、修改、删除等操作。

存储过程与存储函数

MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数合称为存储程序。与一般的SQL语句需要先编译然后立即执行不同,存储程序是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,当用户通过指定存储程序的名字并给定参数(如果该存储程序带有参数)来调用才会执行。

存储程序就是一条或者多条SQL语句和控制语句的集合,我们可以将其看作MySQL的批处理文件,当然,其作用不仅限于批处理。当想要在不同的应用程序或平台上执行相同的功能一段程序或者封装特定功能时,存储程序是非常有用的。数据库中的存储程序可以看做是面向对编程中面向对象方法,它允许控制数据的访问方式。

存储函数与存储过程有如下区别:

(1)存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少;存储过程的实现功能要复杂些,而函数的实现功能针对性比较强。

(2)返回值不同。存储函数必须有返回值,且仅返回一个结果值;存储过程可以没有返回值,但是能返回结果集(out,inout)。

(3)调用时的不同。存储函数嵌入在SQL中使用,可以在select 存储函数名(变量值);存储过程通过call语句调用 call 存储过程名。

(4)参数的不同。存储函数的参数类型类似于IN参数,没有类似于OUT和INOUT的参数。存储过程的参数类型有三种,IN、out和INOUT:

    a. in:数据只是从外部传入内部使用(值传递),可以是数值也可以是变量

    b. out:只允许过程内部使用(不用外部数据),给外部使用的(引用传递:外部的数据会被先清空才会进入到内部),只能是变量

    c. inout:外部可以在内部使用,内部修改的也可以给外部使用,典型的引用 传递,只能传递变量。

以上就是mysql存储过程与存储函数的区别是什么的详细内容,更多请关注主题君其它相关文章!

-=||=-收藏赞 (0)
更多主题
单栏极简文艺WordPress博客主题:Diaspora主题
¥ 0 关注:20,393
详情
简约黑白WordPress个人博客主题:Personal主题
¥ 0 关注:20,242
详情
v1.0.0
小程序收录免费WordPress主题:XCX主题
¥ 0 关注:20,050
详情
v1.0.0
一款简约单栏的免费WordPress博客主题:itheme主题
¥ 0 关注:18,251
详情
功能丰富切轻量的WordPress虚拟资源主题:Rizhuti主题
¥ 599 关注:18,208
详情
大气优雅免费WordPress博客主题:HONEY主题
¥ 0 关注:15,047
详情
回复
暂无评论

不要再留垃圾评论了,主题君整理资源不容易,留几句鼓励的话吧。