还剩4页未读,继续阅读
文本内容:
湖南科技学院计算机与通信工程系实验报告实验项目PL/SQL编程课程名称Oracle数据库成绩时间2012年12月日第15周第9-12节地点E305姓名彭贵兵学号201008003244班级软件1002
一、实验要求在Oracle10g中综合运用PL/SQL中各种程序控制结构、系统函数、异常处理语句以及DML语句完成思考题部分的PL/SQL程序编写
二、实验目的熟练掌握PL/SQL程序设计的基本知识熟练掌握PL/SQL中控制结构的使用具体包括选择结构语句(IF语句和CASE语句),循环结构(四种循环结构)熟练使用PL/SQL中系统函数掌握PL/SQL中异常处理语句的使用掌握PL/SQL中SELECT语句和DML语句的综合运用
三、实验环境硬件设备PC机一台操作系统WindowsXP应用工具Oracle10g
四、实验内容及结果以SYS用户登录系统代码如下sqlplussys/assysdba创建用户,指定__、表空间用户名命名以本人姓名的缩写+‘_’+学号最后两位代码如下createuserpgb_44identifiedbypeng123defaulttablespa__userstemporarytablespa__temp;为该用户授予sysdba、connect、resour__权限代码如下grantsysdbatopgb_44;grantconnecttopgb_44;grantresour__topgb_44;Exit;以自己的用户身份登录代码如下sqlpluspgb_44/peng123assysdba;在本用户方案中创建表departments并为该表输入若干数据程序代码如下createtablepgb_
44.departmentsdep_idnumberpri__rykeydep_namevarchar220;insertintopgb_
44.departmentsvalues001人事部;insertintopgb_
44.departmentsvalues002办公室;insertintopgb_
44.departmentsvalues003财务部;insertintopgb_
44.departmentsvalues004技术部;insertintopgb_
44.departmentsvalues005服务部;commit;select*frompgb_
44.departments;执行结果如下在本用户方案中创建表employees并为该表输入若干数据程序代码如下createtablepgb_
44.employeesemp_idnumberpri__rykeyemp_namevarchar220___varchar22titlevarchar210wagenumberidcardvarchar212dep_idnumberforeignkeydep_idreferen__spgb_
44.departmentsdep_id;insertintopgb_
44.employeesvalues1彭贵兵男总经理1500008003244001;insertintopgb_
44.employeesvalues2张宇男项目组长600008003202002;insertintopgb_
44.employeesvalues3施磊男职员400008003227003;insertintopgb_
44.employeesvalues4杨林峰女部门经理800008003232004;insertintopgb_
44.employeesvalues5陈月龙女部门经理800008003241005;insertintopgb_
44.employeesvalues6王啸坤男职员350008003249002;commit;colemp_namefor__ta20col___for__ta10coltitlefor__ta10select*frompgb_
44.employees;执行结果如下编写PL/SQL程序,使用LOOP…EXIT…END语句计算1—100之间所有偶数之和程序代码如下SETServerOutputON;DECLAREv_NumINTEGER:=0;v_SumINTEGER:=0;BEGINLOOPv_Sum:=v_Sum+v_Num;dbms_output.put_linev_Num;IFv_Num=100THENEXIT;ENDIF;dbms_output.put_line+;v_Num:=v_Num+2;ENDLOOP;dbms_output.put_line1-100之间所有偶数之和是;dbms_output.put_linev_Sum;END;/执行结果如下编写PL/SQL程序,查询5号员工工资,如果工资小于3000,则加200员工资,并提示信息“5号员工工资已更新”,如果工资大于3000,则提示信息“5号员工工资为XXX,已达到规定标准”程序代码如下SETServerOutputON;DECLAREv_wagespgb_
44.employees.wage%type;BEGINSELECTwageINTOv_wagesFrompgb_
44.employeesWhereemp_id=5;Ifv_wages3000thenUpdatepgb_
44.employeessetwage=v_wages+200whereemp_id=5;dbms_output.put_line5号员工工资已更新;elsedbms_output.put_line5号员工工资为||v_wages;endif;commit;END;执行结果如下编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等级工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高;程序代码如下Setserveroutputon;Declarev_wagepgb_
44.employees.wage%type;v_gradevarchar22;beginselectwageintov_wagefrompgb_
44.employeeswherepgb_
44.employees.emp_id=1;v_grade:=casewhenv_wage=3000then低whenv_wage=3000andv_wage5000then中whenv_wage=5000then高end;dbms_output.put_line该员工工资等级为||v_grade;end;执行结果如下编写PL/SQL程序,查询的departments表中是否有部门号为“6”的记录,如果没有,插入新记录部门号为6,部门名称为“后勤部”如果有,显示查询结果程序代码如下setserveroutputon;declarev_namepgb_
44.departments.dep_name%type;beginselectdep_nameintov_namefrompgb_
44.departmentswheredep_id=6;dbms_output.put_line6||||v_name;ex__ptionwhenno_data_foundtheninsertintopgb_
44.departmentsvalues6后勤部;dbms_output.put_line已插入!;whenothersthendbms_output.put_line错误不明!;end;commit;执行结果如下
五、实验总结通过这次上机实验,我有以下收获
1.学会了使用LOOP…EXIT…END语句;
2.学会了使用CASE语句;
3.学会了怎样使用异常情况处理;但是还上机操作过程中还存在以下几个方面的不足
1.代码书写不规范,不仔细;
2.各种代码功能的综合运用不够熟练;
六、教师评语教师签字年月日。