MySQL复习day08:流程控制结构

流程控制结构

    • 流程控制结构
      • 分支结构
      • 循环结构
    • MySQL学习列表
    • 致谢



流程控制结构

1.顺序结构:程序从上至下依次执行;
2.分支结构:程序从两条或多条路径中选择一条取执行;
3.循环结构:程序满足一定条件的基础上,重复执行一段代码;

分支结构

1.if函数
  实现简单的双分支
  语法:
  IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
2. case结构
语法:
  case 变量|表达式|字段
  when 要判断的值 then 返回的值1;
  when 要判断的值 then 返回的值2;
  …
  else 返回的值n;
  end ;
这种情况语句可以放在任何地方MySQL复习day08:流程控制结构_第1张图片

而下面这两种情况只能放在begin end中。
MySQL复习day08:流程控制结构_第2张图片
3.if结构

1)实现多重分支,只能够放在begin end中
2)语法
 if 条件1 then 语句1;
 elseif 条件2 then 语句2;
 …
 [else 语句n;]
 end if;

案例:根据传入的成绩,划分等级

delimiter $
create function f(score int) returns char
begin
     if score>=90 then return 'A';
     elseif score>=80   then return 'B';
     else return 'D';
     end if;
end$

select f(89) as 'score'; #输出为B.

循环结构

1.分类
  while, loop,repeat
2.循环控制
 iterate 类似于 continue ,结束本次循环,继续下次循环;
 leave 类似于break ,跳出当前所在循环;

while
语法

[标签:] while 循环条件 do
     循环体;
end while[标签];

示例:批量插入,根据次数向表中传入多条记录

delimiter $
create procedure p(in n int)
begin
     declare i int default 1;
     label:while i<=n do
       insert into booktype values(12+i,'c');
       if i>=20 then leave;
       end if;
       set i=i+1;
	 end while label;
end$

call p(5)$ #插入五条数据,若插入条数大于20,则只插入20



loop
语法

[标签:]loop
      循环体;
end loop[标签];



repeat

[标签:]repeat
      循环体;
until 结束循环的条件;

MySQL复习day08:流程控制结构_第3张图片

MySQL学习列表

MySQL复习day01:数据库简介和 DQL数据查询语言
MySQL复习day02:DQL数据查询语言续
MySQL复习day03:DQL数据查询语言完结
MySQL复习day04:DML数据操作语言和DDL数据定义语言
MySQL复习day05:TCL事务控制语言和视图
MySQL复习day06:变量,存储过程
MySQL复习day07:函数
MySQL复习day08:流程控制结构
MySQL复习day09:逻辑架构和引擎,索引详解(explain)

致谢

感谢诸君观看,如果感觉有用的话,点个赞吧!



你可能感兴趣的:(数据库,mysql,数据库)