广告
返回顶部
首页 > 资讯 > 数据库 >mysql存储过程和存储函数有哪些区别
  • 491
分享到

mysql存储过程和存储函数有哪些区别

2024-04-02 19:04:59 491人浏览 薄情痞子
摘要

本文小编为大家详细介绍“Mysql存储过程和存储函数有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql存储过程和存储函数有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起

本文小编为大家详细介绍“Mysql存储过程和存储函数有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql存储过程和存储函数有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

区别:1、存储函数的限制比较多,而存储过程的限制相对比较少;2、存储函数会向调用者返回一个且仅有一个结果值,而存储过程会返回一个或多个结果集;3、存储过程的参数类型有三种,存储函数的参数类型只有一种。

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

什么是存储过程?

存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字和参数(如果该存储过程有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

优点:
(1)重复使用:存储过程可以重复使用,可以减少开发人员的工作量。
(2)提高效率:存储过程在第一次使用的时候会编译,一次编译后以后不用再次编译,提高了效率。
(3)减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
(4)安全性:参数化的存储过程可以防止SQL注入,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

缺点:
(1)调试麻烦
(2)移植性差
(3)维护性差

代码:

CREATE DEFINER=`root`@`%` PROCEDURE `getName`(IN `uid` int,OUT my_uname VARCHAR(255))
BEGIN
	#Routine body Goes here...
select admin_name into my_uname from admin_user where id=uid;
  select my_uname;
END

什么是存储函数?

存储函数为一组存储程序,带函数名、参数,且返回一个结果集。存储函数和存储过程的结构类似,但必须有一个return 子句来返回结果。

代码:

CREATE DEFINER=`root`@`%` FUNCTioN `queryChildrenAreainfo`(areaId INT) RETURNS varchar(4000) CHARSET utf8
BEGIN
	DECLARE sTemp VARCHAR(4000);
	DECLARE sTempChd VARCHAR(4000);
	
	SET sTemp='$';
	SET sTempChd = CAST(areaId AS CHAR);
	
	WHILE sTempChd IS NOT NULL DO
	SET sTemp= CONCAT(sTemp,',',sTempChd);
	SELECT GROUP_CONCAT(id) INTO sTempChd FROM personal_dept WHERE FIND_IN_SET(dept_parentId,sTempChd)>0;
	END WHILE;
	RETURN sTemp;
END

存储过程和存储函数的区别

1、总述

存储过程和存储函数统称为存储例程。两者的语法很相似,但却是不同的内容。

存储函数限制比较多,比如不能用临时表,只能用表变量。还有一些函数都不可用等等。

而存储过程的限制就相对比较少,要实现的功能比较复杂一些。

2、返回值上的不同

存储函数将向调用者返回一个且仅有一个结果值。

存储过程将返回一个或多个结果集(函数做不到这一点),或者只是来实现某种效果或动作而无需返回结果。

3、调用方式的不同
存储函数嵌入在sql中使用的,可以在select中调用,就像内置函数一样,比如cos()、sin()。

4、参数的不同

存储函数的参数类型类似于IN参数

存储过程的参数类型有三种:IN参数、OUT参数、INOUT参数

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

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

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


存储过程是用户定义的一系列sql语句的集合,设计特定表或其它对象的任务,用户可以调用存储过程。

而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

读到这里,这篇“mysql存储过程和存储函数有哪些区别”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql存储过程和存储函数有哪些区别

本文链接: https://www.lsjlt.com/news/72207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql存储过程和存储函数有哪些区别
    本文小编为大家详细介绍“mysql存储过程和存储函数有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql存储过程和存储函数有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2022-10-19
  • mysql存储过程与存储函数的区别有哪些
    这篇文章主要讲解了“mysql存储过程与存储函数的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存储过程与存储函数的区别有哪些”吧! ...
    99+
    2022-10-19
  • MySQL的存储函数与存储过程的区别解析
    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。 存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。 存...
    99+
    2022-11-13
  • MySQL存储函数与存储过程的区别是什么
    这篇“MySQL存储函数与存储过程的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL存储函数与存储过程的区...
    99+
    2023-06-29
  • 存储过程和函数有什么区别?
    以下是函数和过程之间的主要区别:函数 th>过程函数有一个返回类型并返回一个值。 td>过程没有返回类型。但它使用 OUT 参数返回值。您不能将函数与数据操作查询一起使用。函数中只允许选择查询。您可以在过程中使用 DML 查询,例如插入、更...
    99+
    2023-10-22
  • 创建存储函数、删除存储函数及 存储函数与存储过程的区别
    之前,我们列举不少mysql自带的函数,但是有些时候自带函数并不能很好满足我们的需求,此时就需要自定义存储函数了,存储函数与存储过程有些类似,简单来说就是封装一段sql代码,完成一种特定的功能,并返回结果。其语法如下: CREATE FUN...
    99+
    2022-02-07
    创建存储函数 删除存储函数及 存储函数与存储过程的区别
  • oracle存储过程和函数的区别
    oracle存储过程和函数的区别:1、返回值,存储过程没有返回值,函数具有返回值;2、使用方式, 存储过程使用CALL语句来调用,函数可以直接在SQL语句中使用;3、能力,存储过程更适合用于执行复杂的业务逻辑,函数可以作为SQL语句的一部分...
    99+
    2023-08-07
  • 浅谈MYSQL存储过程和存储函数
    目录1. 什么是存储过程和存储函数?2. 创建存储过程3. 创建存储函数4. 存储过程和存储函数的使用5. 带有if语句的存储过程6. 带有循环语句的存储过程7. 带有事务的存储过程8. 带有游标的存储函数9. 存储过程...
    99+
    2023-05-05
    MYSQL存储过程 MYSQL 存储函数
  • MySQL存储过程和函数
    存储过程与函数 类似与Java的方法和C语言的函数 存储过程概述 含义 一组经过预先编译的SQL语句的封装 执行过程:存储过程预先存储在MySQL服务器上,客户端发出命令后,服务器可以把预先存储好的SQL语句全部执行 好处 简化操作,提...
    99+
    2020-11-16
    MySQL存储过程和函数
  • MySQL 存储过程和函数
    创建存储过程和函数 创建存储过程和函数就是将经常使用的一组 SQL 语句组合在一起,并将这些 SQL 语句当作一个整体存储在 MySQL 服务器 1. 创建存储过程 CREATE PROCEDURE procedure_name ([p...
    99+
    2018-04-13
    MySQL 存储过程和函数
  • san存储和nas存储的区别有哪些
    这篇“san存储和nas存储的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“sa...
    99+
    2023-02-07
    san nas
  • 细谈Mysql的存储过程和存储函数
    1 存储过程 1.1 什么是存储过程 存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,他可以由声明式的sql语句(如CREATE,UPDATE,SELECT等语句...
    99+
    2022-10-18
  • Mysql中存储过程和函数的区别是什么
    这篇文章主要介绍了Mysql中存储过程和函数的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。数据库设计三范式:第一范式:数据库表的每一...
    99+
    2022-10-18
  • Oracle函数与存储过程的区别
    a、函数必须有返回值,存储过程没有返回值; b、函数可以单独执行,存储过程必须通过execute执行; c、函数可以嵌入SQL中执行,而过程不能;...
    99+
    2016-02-23
    Oracle函数与存储过程的区别
  • 本地存储和云存储的区别有哪些
    本地存储和云存储的区别有:1、概念不同,本地存储是使用本地的硬件和系统进行存储,而云存储则是将数据保存在云服务器上;2、投资方式不同,本地存储通常作为资本支出一次性购买,而云存储则可按需进行付费购买;3、成本不同,本地存储一旦确定容量将难以...
    99+
    2022-10-23
  • mysql存储引擎有哪些区别
    mysql存储引擎的区别:InnoDB支持事务安全,MyISAM和MEMORY两个不支持。InnoDB对空间使用程度较高,MyISAM和MEMORY对空间使用程度较低。InnoDB和MEMORY对内存使用程度较高,MyISAM对内存使用程度...
    99+
    2022-10-14
  • oracle中存储函数与存储过程的区别是什么
    这期内容当中小编将会给大家带来有关oracle中存储函数与存储过程的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一:存储过程:简单来说就是有名字的pl/sql...
    99+
    2022-10-18
  • 九、MySQL存储过程和函数
     存储过程就是一条或者多条SQL语句的集合,可视为批文件,但是其作用不仅限于批处理。9.1、创建存储过程和函数  存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句...
    99+
    2022-10-18
  • Mysql之存储过程和函数
    Mysql之存储过程和函数存储过程就是一条或多条SQL语句的集合,可视为批文件,但是其作用不仅用于批处理。存储程序分为:1、存储过程 2、函数使用Call语句来调用存储过程,只能用输出变量返回值。一、创建存...
    99+
    2022-10-18
  • MySQL存储过程都有哪些
    今天就跟大家聊聊有关MySQL存储过程都有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  MySQL存储过程有哪些  --假设根据user_i...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作