Functions中有哪些特性而存储过程中不含?
Functions中有哪些特性而存储过程中不含?
这个问题的答案已在这里回答了:
1)函数中有哪些特性而存储过程没有?
2)何时应该在SQL中使用函数而不是存储过程?
3)函数相对于存储过程的优势是什么?
大家好,我在谷歌上搜索了Functions和Stored Procedure的差异,但并没有得到Functions相对于Stored Procedure的优点。在Functions中,存储过程也有相同的特性,那么我们为什么要使用Functions呢?
我太混乱了,不知道什么时候应该使用Functions而不是存储过程。
1)何时应该在SQL中使用函数而不是存储过程?
2)函数相对于存储过程的优势是什么?
有人知道,请帮我一下。
admin 更改状态以发布 2023年5月20日
函数和存储过程相似,它们都用于存储能够稍后运行的功能,但它们也有很大的不同
我遇到的一些重要的不同:
函数可以在SELECT
语句中调用,而过程不能
虽然函数可以像function_name()
一样被调用,但过程需要一个显式的CALL
关键字:CALL procedure_name([args])
。
函数可以返回一个值,过程可以返回多个值
过程并不确切地返回值,但可以传递类似引用的参数。然后可以将它们赋值并用作返回值。
常规参数用IN
标记为输入,用于返回值的参数标记为OUT
为输出。而且你可以有参数同时做两者:例如MySQL文档的例子。
CREATE PROCEDURE citycount (IN country CHAR(3), OUT cities INT) BEGIN SELECT COUNT(*) INTO cities FROM world.city WHERE CountryCode = country; END
另一个区别是,存储过程可以返回表格,而函数不能。(除非你提供一列/多列作为输入)