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

引言

MySQL 中的流程控制作为基础知识的最后一块拼图,显得并不是特别重要,而且,在实际生产开发中,也往往不需要通过它来进行程序的控制,那么为什么还要学习它呢?我认为有以下几点:

1、知识的完整性:虽然MySQL 的流程控制结构并不重要,但是作为MySQL 基础知识的一部分,我认为有必要将它补充完善,最起码也要掌握其基本语法和结构,不至于到了真正用的时候临时抱佛脚。

2、任何知识都有其应用价值:虽然MySQL 的流程控制并不重要,但是知识的魅力就是,你不知道它什么时候就会用得上,所以为了有所准备,还是应该适当了解一下这部分内容。

3、给MySQL基础知识画个圆满的句号:MySQL基础系列一路走下来,可谓收获不少,虽然我敢肯定MySQL的知识内涵还远不止如此,但作为一个后端开发人员,能够将这一系列的总结掌握透彻,在实际开发中有所运用也基本算是一个优秀的开发者了。那么本篇流程控制结构的总结,不仅是要为基础知识画上句号,同时也是开启 MySQL 高级系列的起承转合之章。

一、分支结构

1.1 IF() 函数

功能:实现简单的双分支。

语法:IF(表达式1,表达式2,表达式3)

解析:IF() 函数很好理解,和Java 中的三目运算符完全一样,都是先判断第一表达式是否为 true,如果是,则执行表达式2的语句,如果是false,则执行表达式3 的语句。它可以应用与MySQL 中的任何地方,包括存储过程和函数中。

1.2 CASE  结构

功能:实现多分支。

语法

CASE 变量 | 表达式 | 字段

WHEN 值1或表达式1  THEN  返回值1 [或语句1;]

WHEN 值2或表达式2  THEN  返回值2 [或语句2;]

...

ELSE 其他情况返回值 [或语句;]

END [CASE;]

解析:case 结构可以实现类似 Java 的switch 语句的等值判断,也可以实现类似 if...else if 的区间判断。它既可以嵌套在其他语句中,同时也可以作为独立的语句执行。BEGIN-END内外都可以使用。

1.3 IF 结构

IF 结构可以实现多分支结构,但只能用于 BEGIN-END 中。

语法:

IF 条件1 THEN 语句1;
ELSEIF 条件2 THEN 语句2;
...
ELSE 语句n;
END IF;

二、循环结构

MySQL 中的循环结构分为三类:

WHILE、LOOP、REPEAT

另外还有一些循环控制符:

ITERATE:类似于 Java 中的 continue,用于结束本次循环,继续下一次。

LEAVE : 类似于 Java 中的 break,用于结束循环。

WHILE 循环语法:

[标签:] WHILE 循环条件 DO
    循环体;
END WHILE [标签];

标签可以省略,但如果希望使用 LEAVE 等流程控制语句,则必须指定标签。

LOOP语法和 WHILE 类似,只是把 WHILE 关键字换成了 LOOP,可以用LOOP 模拟一些简单的死循环。

REPEAT 循环语法:

[标签:] REPEAT
    循环体;
UNTIL 结束循环的条件
END REPEAT [标签];
发布了191 篇原创文章 · 获赞 280 · 访问量 52万+

猜你喜欢

转载自blog.csdn.net/u014745069/article/details/103443212