问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

存储过程和函数的区别

发布网友 发布时间:2022-04-22 08:04

我来回答

11个回答

热心网友 时间:2022-04-08 00:12

一、含义不同

1、存储过程:存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。

2、函数:是由一个或多个 SQL 语句组成的子程序,可用于封装代码以便重新使用。 函数*比较多,如不能用临时表,只能用表变量等

二、使用条件不同

1、存储过程:可以在单个存储过程中执行一系列 SQL 语句。而且可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

2、函数:自定义函数诸多*,有许多语句不能使用,许多功能不能实现。函数可以直接引用返回值,用表变量返回记录集。但是,用户定义函数不能用于执行一组修改全局数据库状态的操作。

三、执行方式不同

1、存储过程:存储过程可以返回参数,如记录集,函数只能返回值或者表对象。存储过程的参数有in,out,inout三种,存储过程声明时不需要返回类型。

2、函数:函数参数只有in,而函数需要描述返回类型,且函数中必须包含一个有效的return语句。

参考资料链接:百度百科-存储过程

参考资料链接:百度百科-函数

热心网友 时间:2022-04-08 01:30

1、函数只能返回一个变量,而存储过程可以返回多个;

例如:函数可以嵌入sql中和存储过程中使用,但是存储过程需要让sql的query可以执行,将mysql_real_connect的最后一个参数设置为CLIENT_MULTI_STATEMENTS

2、函数的*比较多,不能用临时表,只能用表变量,有些函数不能用,存储过程*少;

3、存储过程处理的功能比较复杂,而函数实现的功能针对性强;

4、存储过程可以执行修改表的操作,但是函数不能执行一组修改全局数据库状态的操作;

5、存储过程可以返回参数,如记录集,函数只能返回值或者表对象。

例如:存储过程的参数有in,out,inout三种,函数只有in,存储过程声明时不需要返回类型,而函数需要描述返回类型,且函数中必须包含一个有效的return语句;

6、存储过程一般是作为独立部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,所以在查询中位于from关键字后面,sql语句中不可以含有存储过程。

扩展资料:

1、存储过程的基本语法:

(1)创建存储过程

create procere sp_name

@[参数名] [类型],@[参数名] [类型]

as

begin

.........

end

以上格式还可以简写成:

create proc sp_name

@[参数名] [类型],@[参数名] [类型]

as

begin

.........

end

/*注:“sp_name”为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/

(2)调用存储过程

exec sp_name [参数名]

(3)删除存储过程

drop procere sp_name

(4)其他常用命令

① show procere status

显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等

② show create procere sp_name

显示某一个mysql存储过程的详细信息

③ exec sp_helptext sp_name

显示你这个sp_name这个对象创建文本

2、存储过程和触发器的区别:

(1)触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是SQL语句集,通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。

(2)触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。

参考资料来源:百度百科 - 存储过程

参考资料来源:百度百科 - 函数(计算机函数)

热心网友 时间:2022-04-08 03:05

1、定义不同

存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

函数:返回类型 名字(形式参数表列){函数体语句 return 表达式;}

2、分类不同

函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。

存储过程分为系统存储过程、本地存储过程、临时存储过程、远程存储过程、扩展存储过程。

3、功能不同

函数:一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。

在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。

存储过程:这类语言主要提供以下功能,让用户可以设计出符合应用需求的程序:

(1)变量说明

(2)ANSI(美国国家标准化组织)兼容的SQL命令(如Select,Update….)

(3)一般流程控制命令(if…else…、while….)

(4)内部函数

参考资料:百度百科-函数

参考资料:百度百科-存储过程

热心网友 时间:2022-04-08 04:56

问题1:
表是真实存在, 它占存储空间
视图相当于一个查询语句它不占有存储空间
一个浅显的比喻吧:表是可执行文件,视图是快捷方式
表是真正的存在与数据库中(也就是硬件介质上)的数据组合,而视图只是简单的把一个或多个表或其他视图联系在一起的集合,也就是说视图只是固定了你的数据查询方式,但是并没有真正把数据保存起来,每次访问视图的时候,系统会自动根据视图的规则去组织筛选数据

问题2:
本质上没区别。
只是函数:只能返回一个变量的*。而存储过程可以返回多个。
函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。
执行的本质都一样。
函数*比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的*相对就比较少
1. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
2. 对于存储过程来说可以返回参数,而函数只能返回值或者表对象。
3. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
4. 当存储过程和函数被执行的时候,SQL Manager会到PRocere cache中去取相应的查询语句,如果在procere cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。

热心网友 时间:2022-04-08 07:04

不同点:
1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE。
2、函数中有返回值,且必须返回,而过程没有返回值。
3、过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除在select中,必须将返回值赋给变量。
4、函数可以在select语句中直接使用,而过程不能,例如:假设已有函数fun_getAVG() 返回number类型绝对值。那么select fun_getAVG(col_a) from table 这样是可以的。

相同点:
二者都可以有出参

热心网友 时间:2022-04-08 09:29

函数就是函数,跟你用的oracle 内置函数是一样的,带参数或者不带参数,返回一个结果
创建语句 create or replace funtion (……)
存储过程一边是处理比较复杂的处理逻辑或者机械化调用等
创建语句 CREATE OR REPLACE PROCEDURE(……)
他俩是不同的东西,存储可以调用函数,

热心网友 时间:2022-04-08 12:10

存储过程类似批处理,函数是一个单一功能的过程。
存储过程=买房子,函数=住宾馆
功能类似,含义不同

热心网友 时间:2022-04-08 15:08

函数分为表值函数跟标量函数
表值函数是经过一些sql语句方法最后返回一张表
标量函数是经过一些sql语句方法最后返回一个值

存储过程是经过一些sql语句方法既可以返回表也可以返回值,且*相对较少,
而函数方法有很多*

热心网友 时间:2022-04-08 18:23

除了语法结构不同之外。。。
存储过程在意的是过程,函数在意的是结果。
当然,存储过程也可以用于复杂处理之后的结果处理。

热心网友 时间:2022-04-08 21:54

1、常规下函数带有返回值,而存储过程无返回值。
2、函数往往作为公式使用,存储过程作为完成某种功能使用。
3、函数也可以带返回参数,过程也可以带返回参数。

热心网友 时间:2022-04-09 01:59

不同点:
1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE。
2、函数中有返回值,且必须返回,而过程可以没有返回值。
3、过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除在select中,必须将返回值赋给变量。
4、函数可以在select语句中直接使用实现对字段进行计算,而存储过程不能,
例如:假设已有函数fun_getAVG() 返回number类型绝对值。
那么select fun_getAVG(col_a) from table 这样是可以的。
5、函数一般处理简单的逻辑方便,存储过程一般处理复杂的逻辑,

相同点:
1、二者都可以有输出
2、二者写法逻辑上很相似
存储过程和函数的区别

一、含义不同 1、存储过程:存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。2、函数:是由一个或多个 SQL 语句组成的子程序,可用于封装代码以便重新使用。 函数限制比较多,如不能用临时表,只能用表变量等 二、使用条件不同 1、存储过程:可以在单个存储...

咨询公司都有哪些服务?

科理成立于1991年,凭借严谨科学的改善与创新方法论,结合跨行业、多领域的丰富咨询经验,为制造业、服务业、央企等提供运营优化、研发优化、降本设计、数字化转型、A...2024-06-17回答者:科理咨询10-广告

存储过程和函数的区别

1、函数只能返回一个变量,而存储过程可以返回多个;例如:函数可以嵌入sql中和存储过程中使用,但是存储过程需要让sql的query可以执行,将mysql_real_connect的最后一个参数设置为CLIENT_MULTI_STATEMENTS 2、函数的限制比较多,不能用临时表,只能用表变量,有些函数不能用,存储过程限制少;3、存储过程处...

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

1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE;2、函数中有返回值,且必须返回,而过程没有返回值;3、过程无返回值类型,不能将结果直接赋值给变量。函数有返回值类型,调用时,除在select中,必须将返回值赋给变量;4、函数可以在select语句中直接使用,而过程不能。

ocacle 什么是储存过程,什么是函数

二、存储过程和函数区别 1、存储过程不一定非要有返回值 数据库中的函数一定有返回值 2、存储过程在前台语言可以直接调用 而函数一般要有sql语句做为载体

函数和存储过程的区别?

函数和存储过程对SQL SERVER来说有很大的区别:1.在SQL SERVER2K以前,没有自定义函数UDF,只有系统函数。2.无论系统函数和UDF,在系统启动是就进行编译并加载,所以UDF的效率比SP要高,SP只是在调用时才加载(扩展的存储过程除外)。3.有些函数getdate,exec..都在UDF里不能用!4.函数必须有...

过程与函数有什么区别?

1、返回值不同:存储过程可以使得对的管理、以及显示关于及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。2、变量不同:存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、 有条件执行以及其它强大的编程...

数据库存储过程、函数、触发器的区别是什么?

1、存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。;2、存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用;3、触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行。分别含义:1、存储过程的特点 ①存储过程只在创建时进行编译,以后执行...

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

存储过程和函数目的是为了 可重复地 执行操作数据库的sql语句的集合。区别是写法和调用上。写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数;函数的参数列表只有输入参数,并且有return <返回值类型,无长度说明>。返回值上:存储过程的返回值,可以有多个值,函数的返回值,只有一...

oracle函数和存储过程有什么区别

一、主体不同 1、函数:当需要分析数据清单中的数值是否符合特定条件时,使用数据库工作表函数。2、存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,一次编译后永久有效。二、特点不同 1、函数:只能返回一个变量,可以嵌入sql中和存储过程中使用。2、存储过程:...

oracle中函数和存储过程的区别和联系

在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点。刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别。一、存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure。2.创建存储...

数据库中存储过程和函数区别 java下一页 存储过程是啥 sql创建过程的语句 oracle有几种备份方式 SQL创建存储过程语句 linux查看系统进程的命令有哪些 视图与存储过程的区别 oracle的物理存储结构包括哪些
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑清理的是哪些垃圾 学校卫生有哪些 校园打扫卫生实践内容有哪些呢? 搜狗浏览器怎么设置百度搜索 搜狗浏览器怎么把百度设置搜索引擎 上海康进医疗器械有限公司经营范围及产品 饥荒切斯特怎么升级介绍_饥荒切斯特怎么升级是什么 国家储备粮食够吃几年 日本精品卡2卡三卡4卡晚上少人不宜看?Feels网友汉娜纠正:那是B站! 莲蓉馅的做法 掌握这些烹饪技巧 酒厂属于什么行业类型 什么显示控制面板无法改变显示设置? 什么是存储过程?用什么来调用? 数据库中的存储过程是什么 黄码上有关联手机号 什么是存储过程存储过程有什么特点 我手机关联别人的手机号,那我信息是不是他手机也... 关联手机号有什么作用 存储过程的定义 中国移动什么是关联手机号? 什么是存储过程? 百度账号关联手机号有什么用,怎么取消 什么是存储过程?有什么优点? 怎么去除杯子上的茶渍 光遇官服的账号中心里的关联手机号有什么用?之前... 家庭号是要有多个手机号码然后去关联在一起吗? 洗衣店能清洗T恤上的啤酒渍或茶渍吗? 请问什么是“'关联手机号”?百度帐号的,不是绑定手... 茶渍好洗吗 《光遇》里绑定了邮箱之后关联手机号有什么用? 啤酒加什么可以洗茶渍 存储过程是什么?谁能给我详细解答? 存储过程的定义? 存储过程到底是什么! 何为存储过程,举例说明 存储过程在数据库中的作用是什么 显示控制面板无法更改显示设置。图形驱动程序返回一个未知的错误。 汽车导航微信公众号都有哪些 在导航时来微信了,导航可以显示在屏幕上方,怎么样... 车载导航怎么下载微信 手机导航时来微信如何看到 netflix必须付费吗? netflix 如何注册 netflix怎么注册 Netflix是不是付费包月后,马上就可以点击开始看了... ps4 pro上的netflix怎么注册啊看不懂英文 netflix新手注册遇到扣费问题 奈飞会员日期是按天算 XBOX金会员Netflix 西瓜汁怎么清洗干净? 苹果怎么下载netflix