第五章 存储过程

MySQL数据库

第五章 存储过程

一、什么是存储过程

1、存储过程(Stored Procedure)

(1)一组为了完成特定功能的 SQL 语句集
(2)它存储在数据库中,一次编译后永久有效
(3)通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它
在这里插入图片描述

2、存储过程的优缺点

优点
(1)存储过程可封装,并隐藏复杂的商业逻辑
(2)存储过程可以回传值,并可以接受参数
(3)存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同
(4)存储过程可以用在数据检验,强制实行商业逻辑等
缺点
(1)存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程
(2)存储过程的性能调校与撰写,受限于各种数据库系统

二、存储过程的使用

1、创建存储过程

在这里插入图片描述
在这里插入图片描述
注意:
(1)存储过程名一般以p_开头。
(2)存储过程体包含了在过程调用时必须执行的语句,例如:DML、DDL 语句,if-then-else 和 while-do 语句、声明变量的 declare 语句等
(3)过程体格式:以begin开始,以end结束(可嵌套)
在这里插入图片描述

2、调用存储过程

在这里插入图片描述
注意:
(1)如果该存储过程设置有参数,在调用时,必须传入参数,并明确写出();
(2)如果该存储过程没有参数,在调用时,()可以不写。

3、存储过程的参数

MySQL存储过程的参数用在存储过程的定义,共有三种参数类:
(1)in:输入参数,表示调用者向过程传入值(传入值可以是字面量或变量)。如果不写明参数类型,默认为输入参数。
在这里插入图片描述

(2)out:输出参数,表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
在这里插入图片描述

  • 设置全局变量
    通过 set 关键字定义全局变量,变量名前增加前缀 @
    在这里插入图片描述
    在这里插入图片描述
    通过select关键字显示全局变量。
    在这里插入图片描述
    (3)inout: 输入输出参数,既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
    在这里插入图片描述
    注意:
  • 输入值使用 in 参数
  • 返回值使用 out 参数
  • inout 参数尽量少用
4、存储过程的变量

(1)定义变量
在这里插入图片描述
在这里插入图片描述
(2)变量赋值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、存储过程的选择结构

1、if…then…else 选择结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、case…when 选择结构

在这里插入图片描述
在这里插入图片描述

四、存储过程的循环结构

1、while …do…选择结构

在这里插入图片描述
在这里插入图片描述

2、repeat…until 选择结构

在这里插入图片描述
在这里插入图片描述

3、loop

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、存储过程的游标

1、什么是游标:

游标是保存查询结果的临时区域

2、游标的语法结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值