感谢大家帮忙!!求解下面的题目 %>_<%
  建立表、索引、视图、同义词
对数据进行插入操作 编写一个PL/SQL块
题目如下:2) 建立表(设计雇员信息表、部门表、工资表)、插入数据、建立同义词、索引、视图的操作。3) 编写PL/SQL程序块ShowInfo,给定一个员工号就可以显示其姓名、性别等信息,如果该员工不存在则显示‘对不起,没有此员工!’ 4) 编写PL/SQL程序块processInfo,对员工年龄进行判断,决定缴费基数,计算社保费,写入数据库中。
年龄 社保缴费工资基数 个人每月社保费 备注
Year<18 无 无 解聘
18<=year<22 2000 工资*0.07  
22<=year<30 3000 工资*0.08  
30<=year<40 4000 工资*0.09  
40<=year<=60 5000 工资*0.11  
Year>60 无 无 退休
注意:社保缴费工资与实际工资可以不相同,社保缴费工资和每月养老保险费可以放在工资表里。

解决方案 »

  1.   

    2) 建立表(设计雇员信息表、部门表、工资表)、插入数据、建立同义词、索引、视图的操作。
    create  table  
    insert into 。。
    create index 
    create view 
    这些DDL google 搜一下一堆一堆的 建议你搜搜去 没有什么难度 3) 编写PL/SQL程序块ShowInfo,给定一个员工号就可以显示其姓名、性别等信息,如果该员工不存在则显示‘对不起,没有此员工!’  
    这个过程 
    就是一个表连接 在判断 数据是否为空 
    4) 编写PL/SQL程序块processInfo,对员工年龄进行判断,决定缴费基数,计算社保费,写入数据库中。
    年龄 社保缴费工资基数 个人每月社保费 备注
    Year<18 无 无 解聘
    18<=year<22 2000 工资*0.07   
    22<=year<30 3000 工资*0.08   
    30<=year<40 4000 工资*0.09   
    40<=year<=60 5000 工资*0.11   
    Year>60 无 无 退休这个 语句套用 CASE WHEN  18<=year<22 then 工资*0.07  
                          ................ 
    老师留下的作业 还是建议自己google 搜搜 自己去做的 
      

  2.   

    楼主,你人真懒!
    1、
    雇员信息表:
    CREATE TABLE EMP(
    EMPNO NUMBER(4) NOT NULL, --员工编号
           ENAME VARCHAR2(10),  --员工姓名 
    SEX VARCHAR2(1) check(sex in ('F','M')) ,      -- 性别 
       AGE number,     --年龄 
       addr VARCHAR2(100), -- 住址 
            DEPTNO NUMBER(2)  --部门 
    );部门表
    CREATE TABLE DEPT (
    DEPTNO NUMBER(2) not null,  --部门编号
    DNAME VARCHAR2(14),  --部门名称
    LOC VARCHAR2(13)  --所在地
    );  工资表
    CREATE TABLE EMP_SAL (
    EMPNO NUMBER(4) NOT NULL, --员工编号
    DTCYC varchar2(6), --月份
    SAL NUMBER,  --实际工资
    SAL_1 number, --社保缴费工资
    SAL_2 number  --社保费
    );2、
    create or replace ShowInfo(p_empno in varchar2)
    is
    v_ename emp.ename%type;
    v_sex emp.sex%type;
    cursor emp_cur is select ename,sex,birthday,addr from emp where empno=p_empno;
    begin
      if (emp_cur%isopen)==flase then   
    open emp_cur;
      loop
    fetch emp_cur into v_ename,v_sex;
    if emp_cur%found then
       dbms_output_line('===员工信息===');
       dbms_output_line('===姓名:'||v_ename);
       dbms_output_line('===性别:'||v_sex);
    else
       dbms_output_line('对不起,没有此员工!');
      end if;
      end loop;
      close emp_cur;
    end;
       
    3、
    创建社保费表
    create table emp_sal_detail (
    EMPNO VARCHAR2(4), --员工编号
    AGE NUMBER, --年龄
    SAL_1 number,--社保缴费工资基数
    SAL_2 number, --个人每月社保费 
    sumary varchar2(100) --备注
    );
     
    create or replace processInfo(p_empno in varchar2)
    is
    v_age emp.age%type;
    v_sal emp_sal.sal%type;
    begin
      select age into v_age from emp where empno=p_empno;
      select sal into v_sal from emp_sal where empno=p_empno;
      if v_age<18 then
    insert into emp_sal_detail values(p_empno,v_age,0,0,'解聘');
      elsif 18<=v_age and v_age<22 then
    insert into emp_sal_detail values(p_empno,v_age,2000,v_sal*0.07,null); 
      elsif 22<=v_age and v_age<30 then
    insert into emp_sal_detail values(p_empno,v_age,3000,v_sal*0.08,null);  
      elsif 30<=v_age and v_age<40 then
    insert into emp_sal_detail values(p_empno,v_age,4000,v_sal*0.09,null); 
      elsif 40<=v_age and v_age<60 then
    insert into emp_sal_detail values(p_empno,v_age,5000,v_sal*0.11,null);  
      else 
    insert into emp_sal_detail values(p_empno,v_age,null,null,'退休'); 
      end if;
    exception 
    when no_data_found then
       null;
    end;