【大数据系列之MySQL】(三十五):MySQL中的流程控制

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【大数据系列之MySQL】(三十五):MySQL中的流程控制

一、分支结构

1.if函数

实现双分支结构

if (表达式1,表达式2, 表达式3)
如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值

2.case结构

  • 情况1:类似于Java中的switch语句,一般用于实现等值判断
  • 情况2:类似于Java中的多重if分支结构,一般用于实现区间判断
case 要判断的字段或表达式
when 常量1 要显示的值或语句;
when 常量2 要显示的值或语句;
...
else 要显示的值或语句;(相当于default)
end
case
when 条件1 要显示的值或语句;
when 条件2 要显示的值或语句;
...
else 要显示的值或语句;
end

可以作为表达式,嵌套在其它语句中使用,可以放在任何地方

3.if结构

实现多重分支,不同于if函数,只能应用在begin end中

if 条件1 then 语句1
elseif 条件2 then 语句2
...
可选【else 语句n;】
end if;
# 根据传入的成绩,来显示等级,比如传入的成绩:90-100返回A
create function test_if(score INT) returns char
begin
  if score>=90 and score<=100 then return 'A'
  elseif score>=80 then return 'B'
  elseif score>=60 then return 'C'
  else return 'D';
  end if;
end $

二、循环结构

分类:

  • while、loop、repeate
  • iterate类似于continue,继续,结束本次循环,继续下一次
  • leave类似于break,跳出,结束当前所在的循环

1.while

【标签: 】while 循环条件 do
      循环体
     end while【标签:】;
# 批量插入多条数据
create procedure pro_while(IN insertCount int)
begin
  declare i int default 1;
  while i<= insertCount do
    insert into admin(username, password) values(concat('rose', i), '666')
    set i = i+1
  end while;
end $

2.loop

【标签: 】loop
      循环体
     end loop【标签:】;
# 可以用来模拟死循环

3.repeat

【标签: 】repeat
      循环体
     until 结束循环的条件
     end repeat【标签:】;
# 类似于do while

4.使用leave

# 批量插入多条数据,如果次数大于20停止
create procedure pro_while(IN insertCount int)
begin
  declare i int default 1;
  a: while i<= insertCount do
    insert into admin(username, password) values(concat('rose', i), '666')
    if i>=20 then leave a;
    set i = i+1
  end while a;
end $


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
SQL 存储 缓存
MySQL执行流程
本文介绍了MySQL的执行流程,分为server层和引擎层。server层包含连接器、查询缓存、解析器、预处理器、优化器等组件,负责SQL的接收、解析、优化及执行;引擎层负责数据的存储与读取。文章详细解释了各组件的功能,如连接器负责用户身份认证,查询缓存提高查询效率,解析器进行SQL的词法和语法分析,预处理器验证表和字段的存在性,优化器选择最优执行计划,最终由查询执行引擎完成查询并将结果返回给客户端。
MySQL执行流程
|
2月前
|
数据采集 机器学习/深度学习 存储
大数据的处理流程
【10月更文挑战第16天】
159 2
|
2月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
72 5
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
53 3
|
2月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
55 0
|
2月前
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
175 0
|
1月前
|
存储 SQL NoSQL
|
2月前
|
消息中间件 存储 分布式计算
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
41 4
|
2月前
|
SQL 分布式计算 大数据
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
62 2
|
2月前
|
消息中间件 缓存 大数据
大数据-57 Kafka 高级特性 消息发送相关01-基本流程与原理剖析
大数据-57 Kafka 高级特性 消息发送相关01-基本流程与原理剖析
46 3