MySQL基础篇——流程控制结构

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL基础篇——流程控制结构

文章目录

👩‍🔧前言

上一节介绍了存储过程和函数,本节继续介绍MySQL的基础部分——流程控制结构。至此MySQL的基础部分介绍完毕。


🧟顺序结构

定义:程序从上往下依次执行

🧟‍♀️分支结构

定义:程序从两条或多条路径中选择一条去执行

1.if函数
功能:实现简单的分支

语法:

IF(表达式1,表达式2,,表达式3)

执行顺序:

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

应用:可应用到任何地方

2.case结构

  情况1:类似于java中的switch语句,一般用于实现等值判断

语法:

CASE 变量 | 表达式 | 字段

WHEN 要判断的值 THEN 返回的值1或语句1;

WHEN 要判断的值 THEN 返回的值2或语句2;

ELSE要返回的值n或语句n;

END CASE;

情况2:类似于java中的多重IF语句,一般用于实现区间判断

语法:

CASE

WHEN 要判断的条件1 THEN 返回的值1或语句1;

WHEN 要判断的条件2 THEN 返回的值2或语句2;

ELSE要返回的值n或语句n;

END CASE;

特点:

①可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,BEGIN END中或BEGIN END的外面

可以作为独立的语句去使用,只能放在BEGIN END 中

🧑🏽‍🔧案例:创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100,显示A,80-90,显示B,60-80,显示C,否则,显示D

CREATE PROCEDURE test_case(IN score INT)
BEGIN
 CASE
 WHEN score>=90 AND score<=100 THEN SELECT 'A';
 WHEN score>=80 THEN SELECT 'B';
 WHEN score>=60 THEN SELECT 'C';
 ELSE SELECT 'D';
 END CASE;
 END $
 CALL test_case(95)$

②如果WHEN中的值满足或条件成立,则执行对应的THEN后面的语句,并且结束CASE

如果都不满足,则执行ELSE中的语句或值

③ELSE可以省略,如果ELSE省略了,并且所有WHEN条件都不满足,则返回NULL

3.if结构
功能:实现多重分支

语法:

if 条件1 then 语句1;

elseif 条件2 then 语句2;

【else 语句n;】

end if

应用:应用在begin end中

🧟‍♂️循环结构

定义:程序在满足一定条件的基础上,重复执行一段代码

分类:while、loop、repeat

循环控制:

iterate 类似于continue,继续,结束本次循环,继续下一次

leave 类似于 break,跳出,结束当前所在的循环

1.while

语法:

【标签:】 while 循环条件 do

循环体;

end while 【标签】;

2.loop

语法:

【标签:】 loop

循环体;

end loop 【标签】;

可以用来模拟简单的死循环

3.repeat

语法:

【标签:】 repeat

循环体;

until 结束循环的条件

end repeat 【标签】;

循环结构的总结:屏幕截图 2023-07-16 151427.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)
|
6天前
|
存储 JSON 关系型数据库
轻松入门MySQL:MySQL字段类型精解,优化存储结构,助力系统高效运行(2)
轻松入门MySQL:MySQL字段类型精解,优化存储结构,助力系统高效运行(2)
|
6天前
|
存储 关系型数据库 MySQL
MySQL InnoDB数据存储结构
MySQL InnoDB数据存储结构
|
6天前
|
存储 缓存 关系型数据库
MySQL的varchar水真的太深了——InnoDB记录存储结构
varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实际可用空间的因素有哪些?本篇围绕innodb默认行格式dynamic来说说原理。
852 6
MySQL的varchar水真的太深了——InnoDB记录存储结构
|
6天前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
190 0
|
6天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
43 0
|
6天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
47 0
|
5天前
|
NoSQL 关系型数据库 MySQL
B+树 和 跳表 的结构及区别,不同的用途【mysql的索引为什么使用B+树而不使用跳表?】
B+树 和 跳表 的结构及区别,不同的用途【mysql的索引为什么使用B+树而不使用跳表?】
22 2
|
6天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
37 0
|
6天前
|
存储 缓存 关系型数据库
MySQL结构流程,看这一篇就够了!
MySQL结构流程,看这一篇就够了!