文章目录
一、简介
在 SQL 中,函数(Function)和存储过程(Stored Procedure)是两种可重复使用的数据库对象,但它们在设计和用途上有一些区别:
-
函数(Function):
- 函数是一种接收参数并返回单个值的数据库对象。
- 函数可以在 SELECT 语句中调用,用于计算和返回单个值。
- 函数通常用于执行特定的计算或操作,并返回结果,比如数学运算、字符串操作等。
- 函数可以被嵌套调用,也可以在其他查询中使用。
- 函数不能包含数据操作语句(如 INSERT、UPDATE、DELETE)。insert updata delete
-
存储过程(Stored Procedure):
- 存储过程是一组预编译的 SQL 语句集合,可接受参数并执行特定任务。
- 存储过程可以包含各种 SQL 语句,包括数据操作语句(如 INSERT、UPDATE、DELETE)。
- 存储过程可以执行一系列操作,如数据操作、流程控制、逻辑判断等。
- 存储过程通常用于执行复杂的业务逻辑、数据操作和流程控制。
- 存储过程可以返回多个结果集或输出参数。
总的来说,函数主要用于计算和返回单个值,而存储过程则更适合执行复杂的逻辑操作和数据处理。选择使用函数还是存储过程取决于具体的需求和场景。
二、函数
1.格式
delimiter 符号 # 自定义sql函数结束符号, 因为我们sql语句就是分号结束,一旦默认是分号结束,sql语句中运行到分号就会终止这个程序
create function 函数名 returns 返回类型
begin
函数体
return 返回值
end 符号
delimiter;
delimiter try #
create FUNCTION nb1() returns INT
begin
return (select s_id from student where class = 95032);
end try
delimiter;
# 查看return 函数结果
select nb1();
2.带参数的函数
delimiter 符号 # 自定义sql函数结束符号, 因为我们sql语句就是分号结束,一旦默认是分号结束,sql语句中运行到分号就会终止这个程序
create