#五。流程控制的使用

#1.IF 使用

create PROCEDURE iftest1()
BEGIN
DECLARE a int DEFAULT 10;
-- IF (a>1 &&a<20) THEN
IF (a>1 and a<20) THEN
SELECT 'ok';
ELSE SELECT 'No';
END IF;
END;
CALL iftest();

#2.case 使用

create PROCEDURE casetest()
BEGIN
DECLARE a int DEFAULT 10;
CASE a
WHEN a>10 then SELECT 'no';
WHEN 10 then SELECT 'ok';
ELSE SELECT 'nono';
end CASE;
END;
CALL casetest();
#3.loop 使用

CREATE PROCEDURE looptest()
BEGIN
DECLARE a int DEFAULT 0;
DECLARE b int DEFAULT 0;
my_loop:LOOP
set a=a+1;
if a>10 THEN LEAVE my_loop;
END if;
set b=a;

END LOOP my_loop;
SELECT b;

end;

CALL looptest();

#4.LEAVE 使用 跳出当前循环见上个测试用例 looptest相当于java循环中的break

#5.ITERATE 使用,跳转到循环头部执行,相当于java循环中的continue,ITERATE只能 使用在循环中

CREATE PROCEDURE ITERATEtest()
BEGIN
DECLARE a int DEFAULT 0;
DECLARE b int DEFAULT 0;
my_loop:LOOP
set a=a+1;
if a>10 THEN LEAVE my_loop;
ELSEIF a>5 THEN ITERATE my_loop;
END if;
set b=a;

END LOOP my_loop;
SELECT b;

end;

CALL ITERATEtest();

#6.REPEAT 带条件的循环

CREATE PROCEDURE REPEATtest()
BEGIN
DECLARE a int DEFAULT 0;
REPEAT
set a=a+1;
UNTIL a>10
END REPEAT;
SELECT a;
END;

CALL REPEATtest();
#7.WHILE 带条件的循环

CREATE PROCEDURE WHILEtest()
BEGIN
DECLARE a int DEFAULT 0;

WHILE a<10 DO
set a=a+1;
END WHILE;
SELECT a;

END;

CALL WHILEtest()

MySQL 存储过程 -流程控制的使用的更多相关文章

  1. MySQL数据库----流程控制

    流程控制 1.条件语句 举例一 delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THE ...

  2. MySql存储过程及MySql常用流程控制语法

    /* 该代码是创建了一个名叫"p4"的存储过程并设置了s1,s2,s3两个int型一个varchar型参数,还可以是其他数据类型,内部创建了x1,x2两个变量 DELIMITER是 ...

  3. mysql之流程控制

    目录 分支结构 循环结构 分支结构: 1.if condition then [statement] elseif condition then [statement] else [statement ...

  4. mysql-视图、触发器、事务、存储过程、流程控制

    目录 视图 触发器 事务 存储过程 流程控制 一.视图 视图是由查询结果构成的一张虚拟表,和真实的表一样,带有名称的列和行数据 强调:视图是永久存储的,但是视图存储的不是数据,只是一条sql语句 视图 ...

  5. mysql 视图 触发器 事物 存储过程 函数 流程控制

    1.视图 *** 视图是有一条sql语句的查询结果构成的虚拟表 其不是物理存在的 使用方式与普通表相同 视图的作用1.简化sql语句的编写 2.限制可以查看的数据 可以使用权限来完成 权限某一个库 的 ...

  6. MySQL之视图、触发器、事务、存储过程、函数 流程控制

    MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...

  7. MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引

    本文内容: 视图 触发器 事务 存储过程 内置函数 流程控制 索引 ------------------------------------------------------------------ ...

  8. MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式

    视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...

  9. MySQL数据库(六)-- SQL注入攻击、视图、事物、存储过程、流程控制

    一.SQL注入攻击 1.什么是SQL注入攻击 一些了解sql语法的用户,可以输入一些关键字 或合法sql,来导致原始的sql逻辑发生变化,从而跳过登录验证 或者 删除数据库 import pymysq ...

随机推荐

  1. 一个jquery-ajax post例子ajax 登陆

    index.html文件 <html> <head> <meta http-equiv="Content-Type" content="te ...

  2. ES6中的新特性

    本人最近学习es6一些方法,难免有些手痒,想着能不能将这些方法总结下,如下 1.数组的扩展 1)首先什么是伪数组 无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法 ...

  3. web页面取用户控件页面中服务器控件的值

    用户控件页面后台: public string P_Name { get { return txt_P_name.Value; } set { txt_P_name.Value = value; } ...

  4. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)

    ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了 ------------------------------------- ...

  5. Ceph系统的层次结构

      Ceph存储系统的逻辑层次结构如下图所示[1]. Ceph系统逻辑层次结构自下向上,可以将Ceph系统分为四个层次: (1)基础存储系统RADOS(Reliable, Autonomic, Dis ...

  6. Setup FTP server on Ubuntu 14.04

    Setup FTP server on Ubuntu 14.04 Step 1 » Update repositories .krizna@leela:~$ sudo apt-get updateSt ...

  7. Tkinter Listbox(列表框)

    Python - Tkinter Listbox(列表框): 列表框部件用于显示一个项目列表,用户可以选择的项目数   列表框部件用于显示一个项目列表,用户可以选择的项目数. 语法: 这里是一个简单的 ...

  8. 10_java之继承和抽象类

    01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在Java中,类的继承是指在一个现有类的基础上去构建一个新的类, 构建出来的新 ...

  9. C# 有关控件、自定义类事件中的委托链的获取、移除操作

    直接来代码吧,这样干脆直接,也不耽误我午休了.一切尽在源码中. public class ControlEventTool { /// <summary> /// 移除控件的某类事件, 如 ...

  10. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...