程序和功能与常规之间的差异?

时间:2010-04-21 06:23:02

标签: mysql terminology

在MySQL数据库环境中,这三个术语有什么区别:

  • 存储过程;
  • 存储例程;
  • 存储功能。

P.S。像日期时间函数weekday()这样的内置函数被认为是什么?

5 个答案:

答案 0 :(得分:77)

Google是你的朋友。 “mysql例程函数过程”的第一个匹配是:http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html

快速摘要:

  

存储的例程是过程或函数。

     

使用CALL语句调用过程,并且只能使用输出变量传回值。

     

可以像在任何其他函数中一样从语句内部调用函数,并且可以返回标量值。

答案 1 :(得分:35)

在这里,我试图总结一下功能和程序之间的区别。

  1. FUNCTION总是使用return语句返回一个值。程序可以通过参数返回一个或多个值,或者根本不返回任何值。
  2. 函数通常用于计算,其中过程通常用于执行业务逻辑。
  3. 函数仅返回1个值。过程可以返回多个值(最大1024)。
  4. 默认情况下,存储过程始终返回零的整数值。函数返回类型可以是标量或表或表值。
  5. 存储过程具有预编译的执行计划,而功能则不是。
  6. 一个函数可以通过SQL语句直接调用,如select func_name from dual,而procedure不能。
  7. 存储过程具有安全性并减少网络流量,我们也可以在任何编号中调用存储过程。一次申请。
  8. 一个函数可以在SQL查询中使用,而一个过程不能在SQL查询中使用。这会导致b / w函数和过程产生重大差异。

答案 2 :(得分:28)

MySQL函数和mysql过程之间的区别

MYSQL功能

  

它必须返回值。 INOUTINOUT无法在函数中使用。但是   创建函数时必须声明return datatype。功能可以   从SQL语句中调用。函数返回一个值。

MYSQL程序

  

返回值不是必需的,但可以使用OUT参数   程序返回。可以使用IN | OUT | INOUT个参数。程序   无法从SQL语句中调用。程序返回多个   使用OUTINOUT参数的值。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

程序与功能

1.  PROCEDURES may or may not return a value but FUNCTION must return a value
2.  PROCEDURES can have input/output parameter but FUNCTION only has input parameter.
3.  We can call FUNCTION from PROCEDURES but cannot call PROCEDURES from a function. 
4.  We cannot use PROCEDURES in SQL statement like SELECT, INSERT, UPDATE, DELETE, MERGE etc. but we can use them with FUNCTION.
5.  We can use try-catch exception handling in PROCEDURES but we cannot do that in FUNCTION. 
6.  We can use transaction in PROCEDURES but it is not possible in FUNCTION.