MySQL存储过程(三)——存储过程分支流控语句

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL存储过程的流程控制语句。
阅读本文,您需要有一定的MySQL存储过程基础,如果您对此还存在困惑,欢迎查阅以下文章:
MySQL存储过程(一)——存储过程理论基础
MySQL存储过程(二)——存储过程基本使用

一、分支流控语句简介

在之前的文章中,我们介绍了MySQL存储过程的定义、用途和基本使用。今天,我们就来简单讲解一下MySQL存储过程的流控语句。
存储过程存在分支和循环的流程控制语句,在引入了流控语句后,可以使得MySQL存储过程SQL语句的编写更加灵活,使得MySQL存储过程可以实现更多复杂的功能。MySQL存储过程的条件语句包含if分支语句和case分支语句,两者都可以根据指定的条件影响程序的走向。下面,我们就来简单介绍一下MySQL存储过程的if和case分支流控语句。

二、if分支语句

如果是采用if分支语句,则其语法结构为:

if 【条件】 then
【语句1else
【语句2end if;

SQL语句示例如下:

create procedure if_exp(in s_id int , in name_or_major int , in name_major varchar(20))
begin
if name_or_major=1 then
update student set name=name_major where id=s_id;
end if;
if name_or_major=2 then
update student set major=name_major where id=s_id;
end if;
end //

执行结果如下:

MySQL存储过程(三)——存储过程分支流控语句_第1张图片
MySQL存储过程(三)——存储过程分支流控语句_第2张图片

三、case分支语句

如果是采用case语句,则其语法结构为:

case 【变量】
when 【值1then
【语句1when 【值2then
【语句2】
……
end case;

case分支存储过程SQL语句示例如下:

create procedure case_exp(in s_id int , in name_or_major int , in name_major varchar(30))
begin
case name_or_major
when 1 then 
update student set name=name_major where id=s_id;
when 2 then 
update student set name=name_major where id=s_id;
end case;
end //

执行结果如下:

MySQL存储过程(三)——存储过程分支流控语句_第3张图片
MySQL存储过程(三)——存储过程分支流控语句_第4张图片
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(MySQL,mysql,数据库,sql,MySQL存储过程,运维DBA)