MySQL 什么是MySQL函数和过程之间最显着的区别?

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 ([fun_parameter[,...]])
     RETURNS type
     [characteristic ...] routine_body

proc_parameter:
     [IN | OUT | INOUT] param_name type

fun_parameter:
     param_name type

type:
     任何有效的MySQL数据类型

characteristic:
     COMMENT'String'
     | LANGUAGE SQL
     | [NOT] DETERMINISTIC
     | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}
     | SQL SECURITY {DEFINER | INVOKER}

routine_body:
有效的SQL例程语句 
  • 过程参数可以被定义为仅输入,仅输出或同时为输入和输出。这意味着过程可以通过使用输出参数将值传递回调用者。可以在跟随CALL语句的语句中访问这些值。

另一方面,函数只有输入参数。因此,尽管过程和函数都可以有参数,但过程参数声明语法与函数不同。

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

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

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程