为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle数据库开发必备利器之PL/SQL基础

难度初级
时长 3小时22分
学习人数
综合评分9.57
114人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.5 逻辑清晰
  • plsql的程序结构

    查看全部
    1. PL/SQL 是对SQL语言的扩展

    2. PL/SQL 是面向过程的语言(循环等) 不同数据库的SQL扩展

     Orable:PL/SQL 

    DB2:SQL/PL 

    SQL Server:Transac-SQL(T-SQL)

    查看全部
    0 采集 收起 来源:PL/SQL简介

    2018-05-23

  • 还没看视频先做一遍。。。唉,还是有很多问题。

    set serveroutput on;
    DECLARE
      number1    NUMBER:=0; --小于3000元以下
      number2    NUMBER:=0; --3000至6000之间
      number3    NUMBER:=0; -- 6000以上
      countAll   NUMBER:=0; --小于3000元以下总额
      tempDeptno NUMBER;    --当选部门
      CURSOR cemp
      IS
        SELECT d.deptno,
          d.dname,
          e.sal
        FROM emp e
        RIGHT JOIN dept d
        ON e.deptno=d.deptno;
      pdeptno dept.deptno%type;
      pdname dept.dname%type;
      psal emp.sal%type;
    BEGIN
      SELECT deptno INTO tempDeptno FROM dept WHERE rownum <=1 ORDER BY deptno ASC ; --第一个部门
      OPEN cemp;                                                                     --开启光标
      LOOP                                                                           --开启循环
        FETCH cemp INTO pdeptno,pdname,psal;                                         --赋值
       EXIT
        WHEN cemp%notfound;
        IF pdeptno!=tempDeptno THEN                                                  --换部门啦
          dbms_output.put_line('部门号:'||tempDeptno||',小于3000元的人数为:'||number1||',3000到6000区间的人数为:'||number2||',6000以上的人数为:'||number3||',总额为:'||countAll);
          number1    :=0; --重置数据
          number2    :=0;
          number3    :=0;
          countAll   :=0;
          tempDeptno := pdeptno;
             IF psal    <3000 THEN
            number1 :=number1+1;
          elsif psal>=3000 AND psal<=6000 THEN
            number2 :=number2+1;
          ELSE
            number3:=number3+1;
          END IF;
          countAll := countAll+psal;
        ELSE
          IF psal    <3000 THEN
            number1 :=number1+1;
          elsif psal>=3000 AND psal<=6000 THEN
            number2 :=number2+1;
          ELSE
            number3:=number3+1;
          END IF;
          countAll := countAll+psal;
        END IF;
      END LOOP;
      CLOSE cemp;
      --一旦结束循环就是最后一个部门的参数了。
      dbms_output.put_line('部门号:'||tempDeptno||',小于3000元的人数为:'||number1||',3000到6000区间的人数为:'||number2||',6000以上的人数为:'||number3||',总额为:'||nvl(countAll,0));
    END;


    查看全部
  • SET serveroutput ON;
    DECLARE
      CURSOR cemp
      IS
        SELECT sal,ename,empno FROM emp ORDER BY sal ASC;
      pename emp.ename%type;  --员工名称
      psal emp.sal%type;  -- 员工工资
      pempno emp.empno%type;  --员工编号
      person     NUMBER:=0; --人数
      allSal     NUMBER;    --总工资
      sal_toMany EXCEPTION; --异常
    BEGIN
      rollback;
      SELECT SUM(sal) INTO allSal FROM emp; --总金额;
      dbms_output.put_line('初始总金额为:'||allSal);
      OPEN cemp;
      LOOP
        IF allSal>55000 THEN --每次循环先判断工资总额有没有超过5万元。
          raise sal_toMany;
        END IF;
        FETCH cemp INTO psal,pename,pempno;
        allSal :=allSal+ psal*0.1; --总工资额增加
        psal   := psal + psal*0.1; --增长百分之10%
        person :=person+1;         --人数加1
        dbms_output.put_line('涨工资的员工名称'||pename||'涨完金额为:'||psal);
        update emp set sal = psal where empno = pempno;
        EXIT
       WHEN cemp%notfound;
      END LOOP;
      dbms_output.put_line('涨工资后的工资总额:'||allSal);
      dbms_output.put_line('涨工资后的人数:'||person);
      CLOSE cemp;
      commit;
    EXCEPTION
    WHEN sal_toMany THEN
      dbms_output.put_line('金额已超过5.5万元');
      dbms_output.put_line('涨工资后的工资总额:'||allSal);
      dbms_output.put_line('涨工资后的人数:'||person);
    END;


    查看全部
  • if语句:

    1 if 条件 then 语句1

    语句2

    end if

    2, if 条件 then 语句1

    else 语句2

    end if

    3, if 条件 then 语句1

    elsif 条件 then 语句2

    else 语句3

    end if


    查看全部
    1. 引用型变量:ename1   emp.ename%type

    2. 记录型变量: emp_rec emp%rowtype

    查看全部
  • 带参数光标实例

    查看全部
  • 带参数的光标语法。

    查看全部
  • 游标的基本属性4个及修改默认游标上线值

    查看全部
  • 使用游标(光标)实际例子

    查看全部
  • 光标(游标)的使用实例 光标的前2种属性。

    查看全部
  • 光标(游标)定义语法

    查看全部
  • 光标(游标)定义语法

    查看全部
  • for循环

    查看全部

举报

0/150
提交
取消
课程须知
亲,要学习本门课程只需要熟练使用Oracle的SQL语句就可以了,可以参考慕课网的课程《Oracle数据库开发必备利器之SQL基础》呦!
老师告诉你能学到什么?
1、能够熟练掌握PL/SQL的基本语法 2、能够熟练使用光标和例外 3、能够熟练使用PL/SQL进行开发

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!