mysql 过程 的函数的区别是什么意思,MySQL函数和过程之间最显着的区别是什么?...

过程和功能之间最显着的区别是,它们以不同的方式调用且出于不同的目的。除了以下内容,还有过程和功能之间的区别-过程不返回值。而是使用CALL语句调用它来执行诸如修改表或处理检索到的记录之类的操作。

另一方面,在表达式中调用一个函数,然后将单个值直接返回给要在表达式中使用的调用方。也就是说,在表达式中使用函数的方式与常量,内置函数或对表列的引用相同。

我们不能使用CALL语句调用函数。我们不能在表达式中调用过程。

例程创建的语法与过程和函数有些不同,如下所示-CREATE

[DEFINER = { user | CURRENT_USER }]

PROCEDURE sp_name ([proc_parameter[,...]])

[characteristic ...] routine_body

CREATE

[DEFINER = { user | CURRENT_USER }]

FUNCTION sp_name ([func_parameter[,...]])

RETURNS type

[characteristic ...] routine_body

proc_parameter:

[ IN | OUT | INOUT ] param_name type

func_parameter:

param_name type

type:

Any valid MySQL data type

characteristic:

COMMENT 'string'

| LANGUAGE SQL

| [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

routine_body:

Valid SQL routine statement可以将过程参数定义为“仅输入”,“仅输出”或输入和输出两者。这意味着过程可以使用输出参数将值传递回调用方。可以在CALL语句之后的语句中访问这些值。

另一方面,功能仅具有输入参数。结果,尽管过程和函数都可以具有参数,但是过程参数声明语法与函数的语法不同。

函数返回一个值,因此函数定义中必须有一个RETURNS子句,以指示返回值的数据类型。另外,函数体内必须至少有一个RETURN语句才能将值返回给调用方。

另一方面,RETURNS和RETURN不会出现在过程定义中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值