目录

  • 分支结构
  • 循环结构

分支结构:

  1.if condition then [statement] elseif condition then [statement] else [statement]  end if

   实例:求两个数中的最大值,如果两个数据相等,则返回0,不相等,则返回最大值  

  1. delimiter // -- 把默认的结束符;替换成//
  2. create function test_if(a int,b int) returns int
  3. BEGIN
  4. DECLARE max int DEFAULT 0;
      -- 下面为分支结构
  5. if a > b then
  6. set max = a;
  7. ELSEIF a<b then
  8. set max = b;
  9. ELSE
  10. set max = 0;
  11. end if;
  12. return max;
  13. end;
  14. //
  15.  
  16. -- 查询
  17. select test_if(1,2)

  2.case when condition then [statement] when condition then [staement] else [statement] end case

   实例:求两个数中的最大值,如果两个数据相等,则返回0,不相等,则返回最大值

  1. delimiter // -- 把默认的结束符;替换成
  2. create function test_when(a int ,b int) -- 函数结构
  3. RETURNS int -- 返回值类型
  4. BEGIN -- 开始标签
  5. DECLARE max int default 0; -- 定义内部变量表示最大值,默认为0
  6. -- 下面为分支结构
  7. CASE
  8. WHEN a > b then
  9. SET max = a;
  10. WHEN a < b then
  11. SET max = b;
  12. ELSE
  13. SET max = 0;
  14. END CASE;
  15. RETURN max;
  16. END;
  17. //
  18. -- 查询
  19. select test_when(1,3)

循环结构:

  循环控制语句包括 while condtion do [statement]  、loop 、repeat  [statemnet] until condtion,其中while、loop满足条件开始循环,至少循环0次;而repeat满足条件退出循环,至少循环1次。

  1. while condtion do [statement]

  实例:求和

  1. delimiter // -- 把默认的结束符;替换成
  2. -- 求数值a以内的数据之和
  3. create function test_while(a int) -- 函数结构
  4. returns int -- 返回值类型
  5. begin
  6. DECLARE sum int default 0; --
  7. DECLARE count int default 1;-- 循环次数变量
  8. -- 下面是循环控制语句
  9. la:while count <= a do
  10. set sum = sum + count;
  11. set count = count + 1;
  12. end while la;
  13. return sum;
  14. end;
  15. //

  2.loop

  实例:求和

  1. delimiter // -- 把默认的结束符;替换成
  2. create function demo_loop(a int) returns int
  3. BEGIN
  4. DECLARE s int DEFAULT 0;
  5. DECLARE i int DEFAULT 1;
  6. la:loop
  7. IF i>a then
  8. LEAVE la;
  9. end if;
  10. set s = s+i;
  11. set i=i+1;
  12. end loop la;
  13. return s;
  14. end;
  15. //
    --查询
    select demo_loop(1)

  3.repeat [statement] until condtion

  实例:求和

  1. delimiter // -- 把默认的结束符;替换成//
  2. create function demo_repeat(a int) returns int
  3. begin
  4. DECLARE s int default 0;
  5. DECLARE i int DEFAULT 1;
  6. la:REPEAT
  7. set s = s+i;
  8. set i=i+1;
  9. UNTIL i>a
  10. end REPEAT la;
  11. return s;
  12. end;
  13. //
  14. --查询
  15. select demo_repeat(10)

mysql之流程控制的更多相关文章

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

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

  2. MySQL 存储过程 -流程控制的使用

    #五.流程控制的使用 #1.IF 使用 create PROCEDURE iftest1() BEGIN DECLARE a int DEFAULT 10; -- IF (a>1 &&a ...

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

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

  4. 【mysql的编程专题①】流程控制与其他语法

    流程控制与内置函数,一般用在select的field字段上,或者用在函数,存储过程,触发器中; 如果用在select上就会随着query出来的row来隐式迭代; 注释与语句结束符 语句结束符 默认有两 ...

  5. MySQL自定义函数用法详解-复合结构自定义变量/流程控制

    自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所以UDF是对MySQL功能的一 ...

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

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

  7. 知识点:Mysql 基本用法之流程控制

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

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

    一.视图 视图就是一个虚拟表,我们把复杂的sql语句后看到的虚拟表封装起来,给他取个名字,当我们下次使用的时候,就不用再去写复杂的sql语句,直接调用封装后的视图名字,就可以得到我们想要的表,然后就可 ...

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

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

随机推荐

  1. 视频录制软件&远程支持软件

    视频录制软件 软件名:SCREEN2SWF 录制完成后,可以剪辑: 工程文件,需要保存为svp文件:将视频文件保存为.exe self play 文件,或者.swf flash 文件. 远程支持,远程 ...

  2. iOS 沙盒文件操作

    //获得document +(NSString *)documentsPath { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDoc ...

  3. TinyXml 与 Rapidxml效率对照

    曾经在做开发中一直使用TinyXml,在网上搜索说Rapidxml的效率比tinyXml高.个人比較喜欢追求效率.所以忍不住尝试性使用Rapidxml. RapidXml 的官方站点例如以下: htt ...

  4. HDU 1176-免费馅饼(DP_逆推)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. PHP中常见的header类型

    <?php // 使用 mime_content_type() 查看 $mimetypes=array( 'ez' => 'application/andrew-inset', 'hqx' ...

  6. Spring中AOP的使用

    问题:什么是AOP? 答:AOP基本概念:Aspect-Oriented Programming,面向方面编程的简称,Aspect是一种新的模块化机制.用来描写叙述分散在对象.类或方法中的横切关注点( ...

  7. iOS开发——高级篇——iOS抽屉效果实现原理

    实现一个简单的抽屉效果: 核心思想:KVO实现监听mainV的frame值的变化 核心代码: #import "ViewController.h" // @"frame& ...

  8. BZOJ 2243: [SDOI2011]染色 树链剖分+线段树区间合并

    2243: [SDOI2011]染色 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数 ...

  9. 什么是cookie?session和cookie的区别?

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session ...

  10. IT江湖--这个冬天注定横尸遍野(多数人技术迟迟无进阶,多半是懒的原因。勤是必须的)

    今年江湖大事繁起,又至寒冬,冻的不仅是温度,更是人心. 这两天上班途中看到多个公众号和媒体发了很多 "XXX公司裁员50%" 等等诸如此类的文章,也真是撼动人心.寒冬,比以往来的更 ...