美文网首页程序员
SQL-流程控制结构(19)

SQL-流程控制结构(19)

作者: 小白201808 | 来源:发表于2018-09-02 11:15 被阅读79次

流程控制结构:

顺序结构:程序从上往下依次执行
分支结构:程序从两条或者多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础上,重复执行一段代码

一. 分支结构

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 要判断的条件1 then 返回的值2或语句2;
      ...
      else 要返回的值n或语句n;
      end case;

特点:

(1)可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,befin end 中或begin end的外面
  可以作为独立的语句使用,只能放在begin end中        
       
(2)如果when中的值满足或条件成立,则执行对应的then 后面的语句,并且结束case
 如果都不满足,则执行else 中的语句或值

(3) else可以省略,如果else省略了,并且所有when条件都不满足,则返回null

4.if结构

 功能:实现多重分支
 语法:
 if 条件1 then 语句1;
 elseif 条件2 then 语句2;
 ...
 [else 语句 n;]
 end if;
  
  应用在begin end 中 

案例:

案例1:创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90——100.显示A...

mysql>  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>=70  then select'C';
    ->      else select 'D';
    ->      end case;
    ->      end $
Query OK, 0 rows affected (0.11 sec)

mysql> call test_case(98)$
+---+
| A |
+---+
| A |
+---+
1 row in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

案例2:创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90——100.返回A...

mysql> 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>=70 then return 'C';
   -> else return 'D';
   -> end if;
   -> end $
Query OK, 0 rows affected (0.16 sec)

mysql> select test_if(85)$
+-------------+
| test_if(85) |
+-------------+
| B           |
+-------------+
1 row in set, 1 warning (0.00 sec)

二.循环结构

1.while
 语法:
 【标志:】while 循环条件 do
         循环体;
  end while【标志】;
  
2.loop
  语法:
  【标志:】loop
         循环体;
  end loop【标志】;
  可以模拟简单的死循环
  
  3.repeat
   语法:
   【标志:】repeat
       循环体;
    until 结束循环的条件
    end repeat【标志】;

嗯😄,这次的mysql学习就在这先告一段落,么么。

注:这是本人的学习笔记及练习,如果有错误的地方望指出一起讨论,谢谢!

相关文章

  • SQL-流程控制结构(19)

    流程控制结构: 一. 分支结构 1.if函数 2.case结构 情况1:类似于java中的switch语句,一般用...

  • [JS基础]笔记四

    js流程控制语句 流程控制 顺序结构、分支结构、循环结构 分支结构 if 分支结构 if else 双分支结构语句...

  • 09-Go语言流程控制-指趣学院

    Go语言流程控制基本概念 Go语言流程控制和C语言一样, 也有三大流程控制结构顺序结构(默认结构)选择结构(if ...

  • Java知识之流程控制

    Java流程控制框架图 流程控制 一. 循环结构二. 分支结构三. 顺序结构 循环结构 for循环,for-eac...

  • 第4天 PHP分支、循环结构

    6. 流程控制 流程控制,就是研究程序的走向。 6.1. 流程控制概述 6.1.1. 三大流程结构: 顺序结构:程...

  • 【麦兜】Java基础知识巩固——流程控制

    流程控制 不论哪种编程语言,都有各种各样的流程控制结构,本篇文章介绍的就是各种不同的流程控制结构,比如:顺序结构、...

  • Python程序结构

    2018年6月27日笔记 python流程控制 1.python流程控制语句结构 4种流程控制语句结构:ifif ...

  • Chapter4 Java流程控制之选择结构

    Lecture1 流程控制概述 流程控制语句种类:顺序、选择、循环;选择结构--if结构、if-else结构、多重...

  • 流程控制的基本概念

    流程控制是指控制代码的执行顺序。 在JavaScript中,有三种基本的流程控制结构:顺序结构、选择结构和循环结构...

  • 3.Java流程控制

    程序流程控制 流程控制语句: 顺序结构:是程序的默认结构 分支结构 循环结构 分支结构 if 根据判定的结果(真或...

网友评论

    本文标题:SQL-流程控制结构(19)

    本文链接:https://www.haomeiwen.com/subject/nfhrwftx.html