在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。

IF语句相当于Java中的if()...else if()...else...

CASE语句相当于Java中的switch()...case A:...break;default...

LOOP语句相当于Java中的while(true){...}

while语句相当于Java中的while(条件){...}

REPEAT语句相当于Java中的do{...}while(条件)

LEAVE语句相当于Java中的 break; 配合LOOP使用

当REPEAT出现在LOOP、REPEAT、WHILE语句中的时,相当于Java中的continue;

1. IF语句

列一:

DELIMITER//

CREATE PROCEDURE example_if(IN X INT)

BEGIN

IF X=1 THEN

SELECT 1;

ELSEIF X=2 THEN

SELECT 2;

ELSE

SELECT 3;

END IF;

END

//

注意这里的selimiter//后面的 “//”和最后的 “//”

这样在当前数据库中究生成了过程控制函数example_if(x)

使用流程为

CALL example_if(6);

2. CASE语句

列二:

DELIMITER//

CREATE PROCEDURE example_case(IN X INT)

BEGIN

CASE X

WHEN 1 THEN SELECT 1;

WHEN 2 THEN SELECT 2;

ELSE SELECT 3;

END CASE;

END

//

这样在当前数据库中究生成了过程控制函数example_case(x)

使用:

CALL example_case(7);

3. WHILE语句

列三:

DELIMITER//

CREATE PROCEDURE example_while(OUT SUM INT)

BEGIN

DECLARE i INT DEFAULT 1;

DECLARE s INT DEFAULT 0;

WHILE i<=100 DO

SET s=s+i;

SET i=i+1;

END WHILE;

SET SUM=s;

END

//

这样在当前数据库中究生成了过程控制函数example_while(x)

调用:

CALL example_while(@a);

SELECT @s;

4. LOOP语句

列四:

DELIMITER//

CREATE PROCEDURE example_loop(OUT SUM INT)

BEGIN

DECLARE i INT DEFAULT 1;

DECLARE s INT DEFAULT 0;

loop_label:LOOP

SET s=s+i;

SET i=i+1;

IF i>100 THEN

LEAVE loop_label;

END IF;

END LOOP;

SET SUM=s;

END

//

这里的leave label相当于java中的break;

调用:

CALL example_loop(@s);

SELECT @s;

5. REPEAT语句

列五:

DELIMITER//

CREATE PROCEDURE example_repeat(OUT SUM INT)

BEGIN

DECLARE i INT DEFAULT 1;

DECLARE s INT DEFAULT 0;

REPEAT

SET s=s+i;

SET i=i+1;

UNTIL i>100

END REPEAT;

SET SUM=s;

END

//

调用:

CALL example_repeat(@s);

SELECT @s;

mysql 流程控制语句,mysql PL(procedure language)流程控制语句相关推荐

  1. MySql 学习笔记-Mysql架构介绍与查询sql执行流程

    最近花了99元大洋在极客时间 买了 MySQL 实战45讲.学习的同时留下点笔记.该内容仅仅是个人总结笔记,如有涉及版权还请告知. MySql 的简介 MySQL是一个关系型数据库管理系统,由瑞典My ...

  2. [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程

    [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程 http://mysqllover.com/?p=581 尽管Mariadb以及Facebook在long ...

  3. MySQL第一讲-mysql的基本框架和查询命令流程

    MYSQL的结构 MySQL 的基本架构示意图 总体来说,MySQL 可以分为 Server 层和存储引擎层两部分. Server 层包括 连接器.查询缓存.分析器.优化器.执行器等, 涵盖 MySQ ...

  4. MySQL中SQL生命周期与执行流程

    [1]MySQL执行流程 从MySQL的逻辑架构来看,如下图所示. 这里首先我们分析一下查询缓存,其在MySQL8中已经被抛弃. ① 查询缓存 Server如果在查询缓存中发现了这条SQL语句,就会直 ...

  5. MySQL下载安装配置完整教程(详细流程)

    一.首先附上MySQL官网连接 MySQL官网超链接 二.点击图片中圈出的地方(DOWNLOADS) 三.鼠标下拉到最下面点击MySQL Community(GPL) DOWNLOADS 四.点击圈出 ...

  6. PL/SQL 处理流程

    P249 -P254  oracle8i_9i数据库基础--查看本号百度文库 ***********PL/SQL 简介*************** 1.PL/SQL 是过程语言(Procedural ...

  7. java循环控制语句,简述Java流程控制语句中的三种循环控制语句,并描述下它们的区别。...

    简述Java流程控制语句中的三种循环控制语句,并描述下它们的区别. 答:for语句,构建确定循环次数的循环结构 while语句,通常构建不确定循环次数的循环结构 do-while语句,通常构建不确定循 ...

  8. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬

    MySQL数据库笔记 第一部分 MySQL基础篇 第01章 数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业 ...

  9. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版(自用不可外传)

    文章目录 MySQL数据库笔记 第一部分 MySQL基础篇 第01章 数据库概述 1. 为什么要使用数据库 2. 数据库与数据库管理系统 2.1 数据库的相关概念 3. RDBMS与非RDBMS 3. ...

最新文章

  1. linux root------系统排错
  2. Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)
  3. 前端学习(628):数字类型
  4. AndroidJava保留小数位数的几种写法
  5. PdfJS使用的一些说明
  6. ILSpy 反编译的一个工具,用于以后的使用
  7. 【GIT】git 提交代码正确步骤
  8. iOS 开发全能工具箱
  9. 密码学|离散对数问题、计算量较大的二次方程求解(sagemath与python z3库的使用)
  10. 深度学习车辆检测实现自动驾驶
  11. linux 汇编 preserve8,ARM汇编伪指令
  12. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...
  13. js-js数据结构和算法-树
  14. AR增强现实 Augmented Reality
  15. Tapd 、Jira、Tower对比
  16. 好系统U盘启动教你win7系统如何用cleartype来设置字体
  17. 在Ranger policies中Deny-conditions 和excludes介绍
  18. 《炬丰科技-半导体工艺》多通道晶圆缺陷检测方法
  19. 不成熟的c语言练习1
  20. SemEval 介绍

热门文章

  1. 面向大数据与云计算调度挑战的阿里经济体核心调度系统
  2. Auto-Keras与AutoML:入门指南
  3. 使用Numpy和Opencv完成图像的基本数据分析(Part III)
  4. 知道这些用于数据科学和机器学习的GitHub存储库和Reddit主题吗?
  5. API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务
  6. 云+X案例展 | 民生类:基于AWS PaaS构建基础集团企业级中台
  7. 被嫌弃的互联网的 “一生”(上)
  8. 百度积极回应阿波龙项目不实报道;半数开发者认为学习新语言很困难;腾讯在长沙建立首个智慧产业总部……...
  9. 5G 来了,我们可以做什么?
  10. 教师节 | 程序员都这么玩,你敢挑战吗?