实验报告 课程名称 数据库技术及应用 实验项目名称 实验4PL/SQL及游标操作 实验时间(日期及节次) 周一10-12节 专业 软件工程 学生所在学院 软件学院 年级 学号 姓名 指导教师 实验室名称 4号楼138 实验成绩 预习情况 操作技术 实验报告 附加:综合创新能力 实验综合成绩 教师签字 黑龙江大学教务处黑龙江大学计算机科学与技术专业、软件工程专业《数据库技术及应用》课程实验报告 学号 姓名 班级 实验时间 周一10-12节 实验名称 实验4PL/SQL及游标操作 1、实验目的PL/SQL及游标操作 2、实验环境WindowsXP,Oracle数据库 3、主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
一、PL/SQL1.实现1!+2!+。。。。。。。。+N!2.输出100到200中的素数!二、游标已知一个已经建好的数据库factory,现在该数据库上存在三个表1.职工表worker,其结构为(职工号numnber,姓名char(8),性别char(2),出生日期date,党员否char,参加工作时间date,部门号number),其中职工号为主键2.部门表department结构为(部门号number,部门名称varchar(20)),其中部门号为主键.通常的部门信息有人事部,市场部,财务处等等3.职工工资表salary其结构为(职工号number,姓名char(10),日期date,工资number(10,2)).其中职工号和日期为关键字使用游标在以上的数据库上完成如下操作:1.给定一个职工号,查询职工信息及部门名称2.给定部门号(键盘输入),输出该部门每个员工的基本信息以及5月工资信息3.显示最高工资的职工所在的部门名称和工资,并输出该部门中职工的信息 4、实验总结1.DECLAREiBINARY_INTEGER:=1;kBINARY_INTEGER:=1;sumBINARY_INTEGER:=0;BEGINWHILEi<=NLOOPk:=i*k;sum:=k+sum;i:=i+1;ENDLOOP;('1!+2!+。。。。。。。。+N!'||sum);END;2.DECLAREiBINARY_INTEGER:=100;jBINARY_INTEGER:=2;sumBINARY_INTEGER:=1;BEGINWHILEi<=200LOOPWHILEj<=iLOOPFLAG:=0;sum:=i%j;IFsum=0THENFLAG=0;EXIT;ELSEj:=j+1;ENDIF;ENDLOOP;IF(FLAG=1)(i);FLAG=0;ENDIF;i:=i+1;ENDLOOP;END;1)createtableworker(职工号number(4),姓名char(8),性别char(2),出生日期date,党员否number,参加工作时间date,部门号number(4))2)createtabledepartment(部门号number(4),部门名称varchar(20))3)createtablesalary(职工号number(4),姓名char(8),性别char(2),出生日期date,党员否number,参加工作时间date,部门号number(4))VIEW1emp_info_view(deptno,avgsal,empcount)ASSELECTdeptno,avg(sal),count(*)FROMempGROUPBYdeptno;VIEW2emp_sal_viewASSELECT*FROMempWHEREsal>2000WITHCHECKOPTION;VIEW3emp_dept_viewASSELECTempno,ename,dnameFROMemp,deptWHERE=DECLAREv_deptno%TYPE;CURSORc_empISSELECT*FROMempWHEREdeptno=v_deptno;v_empc_emp%ROWTYPE;BEGINv_deptno:=&x;OPENc_emp;LOOPFETCHc_empINTOv_emp;EXITWHENc_emp%NOTFOUND;||''||||''||||''||v_deptno);ENDLOOP;CLOSEc_emp;END;DECLARECURSORc_dept_statISSELECTdeptno,avg(sal)avgsalFROMempGROUPBYdeptno;v_deptc_dept_stat%ROWTYPE;BEGINOPENc_dept_stat;LOOPFETCHc_dept_statINTOv_dept;EXITWHENc_dept_stat%NOTFOUND;||''||;ENDLOOP;CLOSEc_dept_stat;END;