
# 函数和存储过程的区别是什么？
答：函数和存储过程是数据库中常见的两种对象，两者都可以封装一系列的SQL语句，以完成某些特定的操作。两者区别见[表1]：
 表1函数和存储过程的区别 
| 函数                                   | 存储过程                                     |
|:---|:---|
| 函数的标识符为FUNCTION。                     | 存储过程标识符为PROCEDURE。                       |
| 函数必须有返回值。                            | 存储过程可以有返回值，也可以没有返回值。                     |
| 函数可以输入输出参数。                          | 存储过程可以输入输出参数。                            |
| 函数只可以调用SELECT语句，不可以对表中的数据做出修改。       | 存储过程可以对表中的数据做出修改，如UPDATE、DELETE和INSERT等。 |
| 不可以在函数中调用存储过程。                       | 可以在存储过程中调用函数和存储过程。可以简化一系列复杂语句。           |
| 函数适用于需要返回单个值的情况，比如计算某个数据、字符串处理、返回表等。 | 存储过程适用于需要执行DML操作的情况，比如批量插入、更新、删除数据等。     |
   
