zoukankan      html  css  js  c++  java
  • 第六节:分支结构

    一、分支结构一:if函数

      1、if函数使用

        语法结构:

    if(条件,表达式1,表达式2)
    

         执行顺序:如果条件成立,则 if 函数返回表达式1的值,否则返回表达式2的值;

        功能:实现双分支

        应用:使用在 begin/end 里面或外面(可以作为表达式放在任何位置)

      2、

    二、分支结构二:case 结构

      1、情况1

        这种情况类似于Java中的switch语句,一般用于实现等值判断。

        语法结构:

    case 变量|表达式|字段
    when 值1 then 语句1;
    when 值2 then 语句2;
    ...
    else 语句n;
    end 
    

      

      2、情况2

        这种情况类似于Java中的多重if语句,一般用于实现区间判断。

        语法格式:

    case 
    when 条件1 then 语句1;
    when 条件2 then 语句2;
    ...
    else 语句n;
    end 
    

      

      3、使用位置

        case 结构——作为表达式:

        

        case 结构——作为独立的语句:

        

      4、特点

        (1)既可以作为表达式,嵌套在其他语句中使用,可以放在任何地方,begin end 中或 begin end的外面;

           又可以作为独立的语句去使用,只能放在 begin end 中;

        (2)如果when中的值或条件成立,则执行对应的then后面的语句,并且结束case;

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

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

      5、案例

        (1)创建函数,实现传入成绩,如果成绩>90,返回A,如果成绩>80,返回B,如果成绩>60,返回C,否则返回D

    CREATE FUNCTION test_case(score FLOAT) RETURNS CHAR
    BEGIN 
    	DECLARE ch CHAR DEFAULT 'A';
    	
    	CASE 
    	WHEN score>90 THEN SET ch='A';
    	WHEN score>80 THEN SET ch='B';
    	WHEN score>60 THEN SET ch='C';
    	ELSE SET ch='D';
    	END CASE;
    	
    	RETURN ch;
    END $
    
    SELECT test_case(56)$
    

      

    三、分支结构三:if结构

      1、if 结构

        语法结构:

    if 条件1 then 语句1;
    else if 条件2 then 语句2;
    ...
    【else 语句n;】
    end if;
    

      

        功能:实现的多重分支

        应用:只能使用在 begin/end 中

      2、案例

         (1)创建函数,实现传入成绩,如果成绩>90,返回A,如果成绩>80,返回B,如果成绩>60,返回C,否则返回D

    CREATE FUNCTION test_if(score FLOAT) RETURNS CHAR
    BEGIN
    	DECLARE ch CHAR DEFAULT 'A';
    	IF score>90 THEN SET ch='A';
    	ELSEIF score>80 THEN SET ch='B';
    	ELSEIF score>60 THEN SET ch='C';
    	ELSE SET ch='D';
    	END IF;
    	RETURN ch;
    	
    	
    END $
    
    SELECT test_if(87)$
    

      

        (2)创建存储过程,如果工资<2000,则删除,如果5000>工资>2000,则涨工资1000,否则涨工资500

    CREATE PROCEDURE test_if_pro(IN sal DOUBLE)
    BEGIN
    	IF sal<2000 THEN DELETE FROM employees WHERE employees.salary=sal;
    	ELSEIF sal>=2000 AND sal<5000 THEN UPDATE employees SET salary=salary+1000 WHERE employees.`salary`=sal;
    	ELSE UPDATE employees SET salary=salary+500 WHERE employees.`salary`=sal;
    	END IF;
    	
    END $
    
    CALL test_if_pro(2100)$
    

      

      3、

  • 相关阅读:
    不允许修改SQLserver2008r2表中字段的属性问题
    SQL学习笔记 SQL ORDER BY 关键字
    超爱http://www.runoob.com/菜鸟编程
    sqlserver数据类型
    SQL重要命令
    Task--计算器
    改变文本框内容
    Android Studio
    eclipse导入Android项目出现红色感叹号----Solved
    2017-09-09
  • 原文地址:https://www.cnblogs.com/niujifei/p/15009556.html
Copyright © 2011-2022 走看看