mysql 存储过程、函数和例程之间有什么区别?

cunj1qz1  于 2023-05-05  发布在  Mysql
关注(0)|答案(5)|浏览(187)

在MySQL数据库环境中,这三个术语之间的区别是什么:

  • 存储过程
    • 存储功能 *
    • 存储例程 *

此外,内置函数,如日期时间函数(例如WEEKDAY()等)被认为是什么?

sshcrbum

sshcrbum1#

Google是你的朋友。mysql routine function procedure的第一个匹配是:http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
简单总结一下:
存储例程可以是过程,也可以是函数.
过程是使用CALL语句调用的,并且只能使用输出变量传递回值。
函数可以像任何其他函数一样从语句内部调用,并且可以返回标量值。

mrphzbgm

mrphzbgm2#

在这里,我试图总结函数和过程之间的区别:

  1. FUNCTION always 使用return语句返回一个值。PROCEDURE * 可以通过参数返回一个或多个值,也可以根本不返回任何值。
    1.* 函数 * 通常用于计算,而 * 过程 * 通常用于执行业务逻辑。
    1.一个函数只返回一个值。过程可以返回多个值(最大值为1024)。
    1.默认情况下,存储过程始终返回整数值零。而函数返回类型可以是标量或表或表值。
    1.存储过程有一个预编译的执行计划,而as函数没有.
    1.一个函数可以直接被像SELECT func_name FROM DUAL这样的SQL语句调用,而过程不能。
    1.存储过程具有安全性和减少网络通信量的优点,并且可以在任意数量的应用程序中同时调用存储过程。
    1.函数可用于SQL查询,而过程不能用于SQL查询。这就造成了函数和过程之间的巨大差异。
aurhwmvo

aurhwmvo3#

MySQL函数和MySQL过程的区别
MYSQL函数
它必须返回值。INOUTINOUT不能在函数中使用。但创建函数时必须声明返回数据类型。函数可以从SQL语句调用。函数返回一个值。
MYSQL过程
返回值不是强制性的,但可以使用OUT参数来处理返回过程。可以使用IN|OUT|INOUT参数。不能从SQL语句调用过程。过程使用OUTINOUT参数返回多个值。

z9gpfhce

z9gpfhce4#

过程VS函数

  1. PROCEDURES可以返回值,也可以不返回值,但FUNCTION必须返回值
  2. PROCEDURES可以有输入/输出参数,但FUNCTION只有输入参数。
    1.我们可以从PROCEDURES调用FUNCTION,但不能从函数调用PROCEDURES。
    1.我们不能在SQL语句中使用PROCEDURES,如SELECT,INSERT,UPDATE,DELETE,MERGE等。但是我们可以用函数来使用它们。
    1.我们可以在PROCEDURES中使用try-catch异常处理,但不能在FUNCTION中这样做。
    1.我们可以在PROCEDURES中使用事务,但在FUNCTION中不可能。
b1uwtaje

b1uwtaje5#

函数必须返回一个值,但在存储过程中它是可选的(过程可以返回零或n个值)。函数只能有输入参数,而过程可以有输入/输出参数。函数可以从过程调用,而过程不能从函数调用。

相关问题