mysql分支判断_Mysql流程构造语句 变量定义,判断分支,循环

本文详细介绍了MySQL中的流程构造语句,包括分隔符的使用、变量的定义(全局变量、会话变量和局部变量)、条件分支(IF和CASE)以及循环(LOOP、REPEAT和WHILE)的实现方式,通过示例展示了如何在MySQL中进行流程控制。
摘要由CSDN通过智能技术生成

一 流程构造语句

1>语法

分隔符 概念 用于区分过程的开始和结束的符号

delimiter //

/**定义存储过程**/

//

2变量定义

1>全局变量 必须是show variables存在的变量

通过自动提交变量演示

local/session  修改了 只对当前的session有效

global         修改了 对所有的session都有效

1>查看变量是否支持 session或者 global

SHOW [GLOBAL|LOCAL|SESSION] VARIABLES LIKE 'autocommit'

2>通过变量的方式去获取

SELECT @@autocommit

SELECT @@session.autocommit

SELECT @@global.autocommit

3>设置变量

set  @@autocommit=off     --修改session

set  @@global.autocommit=off 或者 set global autocommit=off  --修改全局的

2>临时变量

1>session级别临时变量

直接使用  @变量名称 无需定义

set @sex='男';

2>局部变量

declare 变量名  类型  default 默认值

set 变量名=值

SELECT 列1,列2 INTO 变量1,变量2 FROM 表 WHERE 条件

3 if条件分支

IF search_condition THEN statement_list

[ELSEIF search_condition THEN statement_list] ...

[ELSE statement_list]

END IF;

case分支

sql语句中    使用case

SELECT CASE gname

WHEN 'aa' THEN '1501'

WHEN 'nn' THEN '1502'

END AS gradename FROM grade;

过程语句使用

DELIMITER //

CREATE PROCEDURE testdefine(sex INT)

BEGIN

CASE WHEN sex=1 THEN

SELECT '男';

WHEN sex=2 THEN

SELECT '女';

ELSE

SELECT '未知';

END CASE;

END

//

4 循环

1>loop循环

循环的定义:

[begin_label:] LOOP

statement_list

END LOOP [end_label]

LEAVE label

这个语句被用来退出任何被标注的流程控制构造。它和BEGIN ... END或循环一起被使用。

ITERATE label

ITERATE只可以出现在LOOP, REPEAT, 和WHILE语句内。ITERATE意思为:“再次循环。”

举例 输出 1-10

DROP PROCEDURE IF EXISTS testdefine;

DELIMITER //

CREATE PROCEDURE testdefine()

BEGIN

SET @i=0;

SET @result='';

loc: LOOP

IF(@i=10) THEN

LEAVE loc;

ELSE

SET @i=@i+1;

SET @result=CONCAT(@result,' ',@i);

ITERATE loc;

END IF;

END LOOP;

SELECT @result;

END

//

2>repeat循环

循环的定义:

[begin_label:] REPEAT

statement_list

/**直到满足条件后就退出**/

UNTIL search_condition

END REPEAT [end_label]

举例  循环输出1-10

DELIMITER //

CREATE PROCEDURE testdefine()

BEGIN

SET @i=0;

SET @result='';

REPEAT

SET @i=@i+1;

SET @result=CONCAT(@result,' ',@i);

/**知道满足条件后就退出**/

UNTIL @i=10

END REPEAT;

SELECT @result;

END

//

3while循环

循环的定义:

[begin_label:] WHILE search_condition DO

statement_list

END WHILE [end_label]

举例  循环输出1-10

DELIMITER //

CREATE PROCEDURE testdefine()

BEGIN

SET @i=0;

SET @result='';

WHILE(@i<10) DO

SET @i=@i+1;

SET @result=CONCAT(@result,' ',@i);

END WHILE;

SELECT @result;

END

//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值