第10章存储过程和存储函数
.存储过程(procedure):
是一组完成特定功能的SQL语句集,即一段存放在数据库中的代码,可由声明式SQL语句(例如CREATE语句、SELECT语句、INSERT语句等)和过程式SQL语句(如IF-THEN
2.存储过程的创建、查看、调用和删除
(1)创建:
delimiter//
create procedure 存储过程名称([形式参数])(先选择数据库) 简
begin
routine body(存储过程体);
end $$
delimiter;
注意:可使用DELIMITER命令将MySQL语句的结束标志修改为其他符号:delimiter//... delimiter;
(2)查看:
show procedure status;/create procedure存储过程名称;
(3)调用:
CALL 存储过程名称([实际参数]);
(4)删除:
drop procedure存储过程名称;
.存储函数(function):
可以分为两种,一种是内置函数,一种是自定义函数。在MySQL中,通常将用户自定义的函数称为存储函数,和MySQL内置函数性质相同,都用于实现某 种功能。
.存储函数的创建、查看、调用和删除
除了调用均与存储过程类似,只需将procedure改成function即可。
(1)创建:create function
(2)查看:show function
(3)调用:select 函数名(实参);(不能用call)
(4)删除:drop function
.存储过程与存储函数的异同
存储过程与存储函数的异同
(1)相同:
都是过程式数据库对象,都是附有一定功能的代码集合,增删改查操作均类似
(2)不同:
a.存储过程可以有输入和输出参数,但函数只能有输入参数,函数本身就是输出参数
b.存储过程调用:call存储过程名,但函数调用:select函数名(实参)
c.存储过程不允许有return语句,但函数必须有return语句
变量的定义(声名)、赋值、流程控制语句与游标
局部变量:在过程体的开头声名,在begin... end内总有效
(1)定义:declare变量名变量类型
(2)单个赋值语句:set 变量名=变量值或表达式
(3)列表赋值语句:select 列表名 into 变量名
(3)流程控制语句:
a.条件语句:if…then…else…end if;
case 变量名
when... then... end case;
b.循环语句:while…end while;
[标签:]LOOP 语句列表 END LOOP[标签];
[标签:]REPEAT 语句列表 UNTIL 条件表达式 END REPEAT[标签];
(4)游标:是通过select语句检索出来的结果集,一定要在存储过程或函数使用,不能单独在查询中使用。操作过程:
定义(声名):declare 游标名称-->
打开:open游标名称-->
读取:fetch游标名称into变量名-->
关闭:close游标名称
用户变量:用户自己定义的变量,存在整个会话中,前面加@符号。
系统变量:全局变量和会话变量,前面加@@符号
存储过程存储函数
文章详细介绍了MySQL中的存储过程和存储函数,包括它们的创建、查看、调用和删除方法。存储过程可以有输入和输出参数,而函数只有输入参数,且函数必须包含return语句。调用存储过程使用CALL,而调用函数则通过SELECT。此外,还涉及了变量定义、赋值、流程控制语句(如IF-THEN、CASE、WHILE、LOOP)以及游标的使用。
摘要由CSDN通过智能技术生成