打好基础——数据库——存储过程和函数

在 SQL 中,存储过程(Procedure)和函数(Function)是两种可执行的数据库对象,它们在功能和用法上有一些区别。

  1. 存储过程(Procedure):
    • 存储过程是一组预定义的 SQL 语句集合,可以执行一系列操作并返回零个或多个结果集。
    • 存储过程可以接受输入参数,用于定制操作行为。
    • 存储过程通常用于执行复杂的数据库操作,如数据插入、更新、删除等。
    • 存储过程不一定返回结果,可以只进行一系列操作而不返回数据。
  2. 函数(Function):
    • 函数是一段可重用的代码逻辑,接受输入参数并返回单个值。
    • 函数在 SQL 查询中用于计算和返回单个值,这个值可以在查询中使用或赋给其他变量。
    • 函数可以接受输入参数,并根据这些参数计算并返回一个值。
    • 函数的返回值可以是标量(如整数、字符串等),也可以是表或表值。
  • PROCEDURE:是一个子程序,但是它可以返回多个值。它通常用于执行一个特定的动作或一系列动作,如修改数据库中的数据。过程不能在 SQL 语句中使用,它需要通过 CALL 语句来调用。
  • FUNCTION:是一个可以返回单个值的子程序。它可以在 SQL 语句中使用,就像一个表达式。

如果有学过C/C++的,这两个类似于预处理和函数的区别。预处理可以替换源代码(并根据替换的代码给出返回值,也可以没有返回值),函数是调用并给出返回值。