广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Oracle PL/SQL入门之案例实践

    2018-04-05 20:18:20 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布

      前面已经了解了关于PL/SQL编程的基础,本文将结合一个案例来加深对这些知识点的理解。

      一. 案例介绍

      某数据库有两张表,是关于某公司员工资料、薪水和部门信息的,它们分别是emp表和dept表,两张表的结构如下: 

      要求如下:

      1、按照上表结构建立相应的表,并每张表写入5组合法数据。

      2、操纵相关表,使得“技术部”的员工的薪水上涨20%。

      3、建立日志,追踪薪水变动情况。

      4、建立测试包。

      二. 案例的分析与实现

      从前面案例的介绍不难看出,要求1考察点为基本SQL语句;要求2主要考察复合查询;要求3是考察触发器的应用;要求4的考察面相对多一些,不仅考察了包的创建,而且也考察了在PL/SQL中的测试方法。了解了这些考察的知识点,就可以一一去解决。

      要求1:

      首先根据前面表的结构可以创建两张表:

      ——创建员工表

    create table emp (emp_id number(5), emp_name varchar2(20), emp_salary number(4));

      ——部门表

    create table dept (dept_id number(3), dept_name varchar2(20), emp_id number(5));

      建立了表之后就可以往表里面写数据了,这里把添加表记录的代码写入到相应的存储过程。

    /*给emp表添加记录的存储过程*/
    create or replace procedure ins_table_emp(p_emp_id number,p_emp_name varchar2,p_emp_salary number) as
    v_emp_id number:=p_emp_id;
    v_emp_name varchar2(20):=p_emp_name;
    v_emp_salary number:=p_emp_salary;
    begin
     insert into emp values (v_emp_id,v_emp_name,v_emp_salary);
    end ins_table_emp;

    /*给dept表添加记录的存储过程*/
    create or replace procedure ins_table_dept(p_dept_id number,p_dept_name varchar2,p_emp_id number) as
     v_dept_id number:=p_dept_id;
     v_dept_name varchar2(20):=p_dept_name;
     v_emp_id number:=p_emp_id;
    begin
     insert into dept values (v_dept_id,v_dept_name,v_emp_id);
    end ins_table_emp;

    /*调用相应的存储过程实现记录添加*/
    begin
     ins_table_emp(10000,'',4000);
     ins_table_emp(10001,'??èy',2300);
     ins_table_emp(10002,'3?t',3500);
     ins_table_emp(10003,'à???',3500);
     ins_table_emp(10004,'á?ò?',3500);

     ins_table_dept(111,'DD?t2?',10000);
     ins_table_dept(111,'DD?t2?',10001);
     ins_table_dept(111,'DD?t2?',10002);
     ins_table_dept(112,'??ê?2?',10003);
     ins_table_dept(113,'êD3?2?',10004);
    end;

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告