zoukankan      html  css  js  c++  java
  • 十一:循环,判断

    一、if函数

    语法:if(条件,值1,值2)

    特点:可以用在任何位置

    二、case语句

    语法:

    情况一:类似于switch

    case 表达式

    when 1 then 结果1或语句1(如果是语句,需要加分号)

    when 2 then 结果2或语句2(如果是语句,需要加分号)

    ...

    else 结果n或语句n(如果是语句,需要加分号)

    end case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

    情况二:类似于多重if

    case

    when 条件1 then 结果1或语句1(如果是语句,需要加分号)

    when 条件2 then 结果2或语句2(如果是语句,需要加分号)

    ...

    else 结果n或语句n(如果是语句,需要加分号)

    end case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

    特点:

    可以用在任何位置

    三、if elseif语句

    语法:

    if 情况1 then 语句1;

    elseif 情况2 then 语句2;

    ...

    else 语句n;

    end if;

    特点:

    只能用在begin end中!!!!!!!!!!!!!!!

    三者比较:

    应用场合

    if函数 简单双分支

    case结构 等值判断 的多分支

    if结构 区间判断 的多分支

    ###循环

    语法:

    【标签:】WHILE 循环条件  DO

    循环体

    END WHILE 【标签】;

    特点:

    只能放在BEGIN END里面

    如果要搭配leave跳转语句,需要使用标签,否则可以不用标签

     Iterate 相当于 continue

    leave类似于java中的break语句,跳出所在循环!!!

    示例代码:
    ##案例 创建一个存储过程判断分数
    DELIMITER $
    CREATE PROCEDURE MYTEST10( 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 $
    
    CALL MYTEST10(99)$
    
    ##创建一个函数使用IF ELSE
    DROP FUNCTION IFSCORE;
    
    CREATE FUNCTION IFSCORE( 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 $
    
    SELECT IFSCORE(88)$
    
    --while示例代码
    DELIMITER $
    CREATE PROCEDURE insertval( IN counts INT )
    BEGIN
       DECLARE i INT DEFAULT 1;
       WHILE i<=counts 
       DO
       INSERT INTO admin(username,`password`) VALUES(CONCAT('Jon',10),'1001');
       SET i=i+1;
       END WHILE;
    END $
    
    CALL insertval(20)$
    
    ## 使用 leave,ITERATE
    DROP PROCEDURE insertval2
    CREATE PROCEDURE insertval2( IN counts INT )
    BEGIN
       DECLARE i INT DEFAULT 1;
       a:WHILE i<=counts 
       DO
       SET i=i+1;
       IF MOD(i,2)=0 THEN ITERATE a;
       END IF;
       INSERT INTO admin(username,`password`) VALUES(CONCAT('Jon',i),'1001');
       END WHILE a;
    END $
    
    CALL insertval2(10)$
  • 相关阅读:
    Codeforces 405E DFS
    Codeforces 433C #248_div1_A 中位数的应用
    UVALive 4487 Exclusive-OR 加权并查集神题
    Codeforces 442A Borya and Hanabi
    人工智能:实现人工智能是是不可能的吗?
    关于kinect开发的网址
    jsp笔记(1)
    关于Kinect音频开发的探究
    windows10添加电源计划修改的快捷方案
    关于 kinect 的开发
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/12869568.html
Copyright © 2011-2022 走看看