数据库Oracle与Mysql语法对比:分支结构

Oracle

分支结构是最基本的程序结构,分支结构由 IF 语句实现。 使用 IF 语句,根据条件可以改变程序的逻辑流程。IF 语句有如下的形式:
IF 条件 1 THEN
语句序列 1;
[ELSIF 条件 2 THEN
语句序列 2;
ELSE
语句序列 n;]
END IF;
其中:
条件部分是一个逻辑表达式,值只能是真(TRUE)、假(FALSE)或空(NULL)。
语句序列为多条可执行的语句。 根据具体情况,分支结构可以有以下几种形式:
IF-THEN-END IF
IF-THEN-ELSE-END IF
IF-THEN-ELSIF-ELSE-END IF

1.IF-THEN-END IF 形式

这是最简单的 IF 结构,练习如下:
【训练 1】 如果温度大于 30℃,则显示“温度偏高”。

    SET SERVEROUTPUT ON 
    DECLARE 
    V_temprature    NUMBER(5):=32; 
    V_result          BOOLEAN:=false; 
    BEGIN 
        V_result:= v_temprature >30; 
        IF V_result THEN  
        DBMS_OUTPUT.PUT_LINE('温度'|| V_temprature ||'度,偏高'); 
        END IF;     END; 

执行结果为: 温度 32 度,偏高

2.IF-THEN-ELSE-END IF 形式

【训练 2】 根据性别,显示尊称。

    SET SERVEROUTPUT ON  DECLARE 
    v_sex   VARCHAR2(2); 
   v_titil   VARCHAR2(10); 
   BEGIN   v_sex:='男'; 
  IF v_sex ='男' THEN     v_titil:='先生'; 
   ELSE 
    v_titil:='女士'; 
   END IF;  
   DBMS_OUTPUT.PUT_LINE(v_titil||'您好!'); END; 

执行结果为: 先生您好!

3.IF-THEN-ELSIF-ELSE-END IF 形式

【训练 3】 根据雇员工资分级显示税金。

SET SERVEROUTPUT ON 
DECLARE    v_sal  NUMBER(5);    v_tax  NUMBER(5,2); BEGIN 
   SELECT sal INTO v_sal 
   FROM emp 
   WHERE empno=7788; 
  IF v_sal >=3000 THEN  
        V_tax:= v_sal*0.08;--税率 8% 
    ELSIF v_sal>=1500 THEN 
       V_tax:= v_sal*0.06; --税率 6%    ELSE 
       V_tax:= v_sal*0.04; --税率 4% 
    END IF; 
   DBMS_OUTPUT.PUT_LINE('应缴税金:'||V_tax); 
    END; 

执行结果为: 应缴税金:240

Mysql

1.IF-THEN-END IF 形式

这是最简单的 IF 结构,练习如下:
【训练 1】 如果温度大于 30℃,则显示“温度偏高”。

DELIMITER $$
drop procedure if exists temprature$$ 
create procedure temprature()
BEGIN   
DECLARE     V_temprature    int(5) default 32; 
DECLARE     V_result   BOOLEAN  default  false; 
      set   V_result = v_temprature >30; 
        IF V_result THEN  
        select '偏高'; 
        else select '偏低';
        END IF;     
END$$

call temprature();

2.IF-THEN-ELSE-END IF 形式

【训练 2】 根据性别,显示尊称。

DELIMITER $$
drop procedure if exists sex$$ 
create procedure sex()
BEGIN   
DECLARE v_sex VARCHAR(2) default '男'; 
DECLARE v_titil   VARCHAR(10); 
  IF v_sex ='男' 
  THEN   set  v_titil='先生'; 
   ELSE 
   set v_titil='女士'; 
   END IF;  
select v_titil;
END$$

call sex();

3.IF-THEN-ELSIF-ELSE-END IF 形式

【训练 3】 根据雇员工资分级显示税金。

DELIMITER $$
drop procedure if exists sp$$ 
create procedure sp()
BEGIN 
DECLARE v_sal  int(5);    
DECLARE v_tax  numeric(5,2); 
   SELECT sal INTO v_sal 
   FROM emp 
   WHERE empno=7788; 
  IF v_sal >=3000 THEN  
         set V_tax= v_sal*0.08;
    elseif  v_sal>=1500 THEN 
       set V_tax= v_sal*0.06; 
       set V_tax= v_sal*0.04;
  end if;
  select v_tax as '应缴税金';
END$$
call sp();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值