该【鄢鸿实验五oracle综合性实验指导书 】是由【学锋】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【鄢鸿实验五oracle综合性实验指导书 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..湖南科技学院综合性实验指导书实验名称:PL/SQL编程实验项目性质:综合性所涉及课程:Oracle数据库计划学时:4」、实验目的(1)熟练掌握PL/SQL程序设计的基本知识。(2)熟练掌握PL/SQL中控制结构的使用。具体包括选择结构语句(IF语句和CASE语句),循环结构(四种循环结构)。(3)熟练使用PL/SQL中系统函数。(4)掌握PL/SQL中异常处理语句的使用(5)掌握PL/SQL中SELECT语句禾口DML语句的综合运用。二、,指定密码、表空间。用户名命名以本人姓名的缩写+‘_'+学号最后两位。、connect、resource权限。。。:..1、条件语句IF语法:IF<条件表达式>THEN<执行语句>...<执行语句n>[ELSIF<条件表达式>THEN<执行语句>...<执行语句n>ELSE<执行语句>]ENDIF;2、分支语句CASE语法:CASE<变量>WHEN<表达式1>THEN值1WHEN<表达式2>THEN值2WHEN<表达式n>THEN值nELSE值n+1END;例1:声明一个整型变量Num使用IF语句判断Num变量是正数、负数或0SETServerOutputON;DECLARENumINTEGER:二-11;BEGIN:..IFNum<('负数');ELSIFNum>('正数');('O');ENDIF;END;/例2、使用CASE语句根据给定的整数输出对应的星期值:SETServerOutputON;DECLAREvarDAYINTEGER:二3;ResultVARCHAR2(20);BEGINResult:=CASEvarDAYWHEN1THEN'星期一'WHEN2THEN'星期二'WHEN3THEN'星期三'WHEN4THEN'星期四'WHEN5THEN'星期五'WHEN6THEN'星期六':..WHEN7THEN'星期七'ELSE'数据越界'END;(Result);END;。1、循环语句LOOP-EXIT…ENDLOOP<程序块1>IF<条件表达式>THENEXITENDIF<程序块2>ENDLOOP;2、循环语句LOOP-EXITWHEN-ENDLOOP<程序块1>EXITWHEN<条件表达式><程序块2>ENDLOOP;3、循环语句WHILE-LOOP-ENDLOOPWHILE<条件表达式>:..LOOP<程序块>ENDLOOP;,4、循环语句FOR…IN…LOOPENDLOOPFOR<循环变量>IN<初始值>..<终止值>LOOP<程序块>ENDLOOP;例1、计算1到3的累加和。SETServerOutputON;DECLAREv_NumINTEGER:二2;v_SumINTEGER:=0;BEGINLOOPv_Sum:=v_Sum+v_Num;(v_Num);IFv_Num=100THENEXIT;ENDIF;('+');v_Num:=v_Num+2;:..ENDLOOP;('=');(v_Sum);END;例2、SETServerOutputON;DECLAREv_NumINTEGER:二1;v_SumINTEGER:=0;BEGINLOOPv_Sum:=v_Sum+v_Num;(v_Num);EXITWHENv_Num=3;('+');v_Num:=v_Num+1;ENDLOOP;('=');(v_Sum);END;例3、SETServerOutputON;DECLAREv_NumINTEGER;v_SumINTEGER:二0;BEGIN:..FORv_NumIN1..3LOOPv_Sum:=v_Sum+v_Num;(v_Num);IFv_Num<('+');ENDIF;ENDLOOP;('=');(v_Sum);END;。WHE语句来定义异常处理:EXCEPTIONWHEN<异常情况名>THEN<异常处理代码>WHEN<异常情况名>THEN<异常处理代码>WHENOTHERSTHEN<异常处理代码>例1、SETSERVEROUTPUTON;DECLARE:..xNUMBER;BEGINx:='a123';--向NUMBE类型的变量X中赋值字符串,('数据类型错误');END;例2、SETSERVEROUTPUTON;DECLAREv_resultNUMBER(10):=0;BEGINv_result:=100/0;:’||v_result);('除数是零!默认用1替代除数,结果是:'11100/1);END;。创建表departments和表employees,并为两张表输入若干数据。如下图所示。:..表departments结构:字段名称字段类型约束Dep_idnumber主键Dep_namevarchar2(20)表employees结构:字段名称字段类型约束emp_idnumber主键emp_namevarchar2(20)sexvarchar2(20)titlevarchar2(20)wagenumberidcardvarchar2(12)dep_idnumber夕卜键完成思考题部分的PL/SQL程序编写。三、实验(设计)仪器设备和材料清单(1)硬件环境:PC机(2)软件环境:Oracle10g四、实验要求1、验证实验内容部分的程序代码。2、综合运用各种程序结构完成思考题部分的PL/SQL程序编写。五、考核形式:..六、实验报告要求()实验目的。(2)思考题的源程序清单。(3)写出在实验过程中遇到的问题及解决方法。(4)要求字迹端正、条理清晰、概念正确。七、思考题1、编写PL/SQL程序,使用LOOP-EXIT…END语句计算1—、编写PL/SQL程序,查询5号员工工资,如果工资小于3000,则加200员工资,并提示信息“5号员工工资已更新。”如果工资大于3000,则提示信息“5号员工工资为XXX已达到规定标准。”3、编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高;4、编写PL/SQL程序,查询的departments表中是否有部门号为“6”的记录,如果没有,插入新记录部门号为6,部门名称为“后勤部”。如果有,显示查询结果。:..实验报告实验项目PL/SQL编程课程名称Oracle数据库成绩时间2012年12月日第15周第9-12节地点E305姓名学号班级一、实验要求在Oracle10g中综合运用PL/SQL中各种程序控制结构、系统函数、异常处理语句以及DML语句完成思考题部分的PL/SQL程序编写。二、实验目的(1)熟练掌握PL/SQL程序设计的基本知识。IF语句和(2)熟练掌握PL/SQL中控制结构的使用。具体包括选择结构语句(CASEg句),循环结构(四种循环结构)。(3)熟练使用PL/SQL中系统函数。(4)掌握PL/SQL中异常处理语句的使用(5)掌握PL/SQL中SELECT语句和DML语句的综合运用。三、实验环境硬件设备:PC机一台操作系统:WindowsXP应用工具:Oracle10g四、实验内容及结果(1)以SYS用户登录系统。代码如下:sqlplussys/jsjorclassysdba;+‘_+学(2)创建用户,指定密码、表空间。用户名命名以本人姓名的缩写号最后两位。代码如下:createuseryh1_45identifiedbyqq11111defaulttablespacesystemtemporarytablespacetemp;resource权限。代码如下:(3)为该用户授予sysdba、connect、grantunlimitedtablespacetoyh145;:..以自己的用户身份登录。代码如下:quit;sqlplusyh1_45/qq11111assysdba;(5)在本用户方案中创建表departments,并为该表输入若干数据。程序代码如下:(Dep_idnumberprimarykey,Dep_namevarchar2(20));(dep_id,dep_name)values(1,'销售部');(dep_id,dep_name)values(2,'行政部');(dep_id,dep_name)values(3,'财务部');(dep_id,dep_name)values(4,'人事部');Select*;执行结果如下:七iniEnt舊;DEP--FJ财务人募(6)在本用户方案中创建表employees,并为该表输入若干数据。程序代码如下:(emp_idnumberprimarykey,emp_namevarchar2(20),sexvarchar2(20),titlevarchar2(20),wagenumber,idcardvarchar2(12),dep_idnumber,foreignkey(dep_id)(Dep_id));(1,'张三','女','销售部经理',10000,201201,1);(2,'李四','男','销售部职员',2000,201202,1);:..?,'','男','行政部经理',12000,201203,2);values(4,'钱六','女','',20000,201204,3);(5,'刘七','男','人事部经理',13000,201205,4);select*;执行结果如下:EMP_1DEMPJMAMESEKTITLEUAGEIDCARDDEP_I?1张三女销售部经理1000020120112李四男销售部职员200020120213王麻子男行政部经理120002012032EMP-IBEMP_NAMESEKTITLE^AGEIDCARDDEP」D4钱六女财务部经理20120435刘七男人事部经理130002012054(7)编写PL/SQL程序,使用LOOP-EXIT…END语句计算1—100之间所有偶数之和。程序代码如下:SETServerOutputON;DECLAREv_NumINTEGER:二2;v_SumINTEGER:=0;BEGINLOOPv_Sum:=v_Sum+v_Num;:..IFv_Num=100THENEXIT;ENDIF;('+');v_Num:=v_Num+2;ENDLOOP;('=');(v_Sum);END;/卩+++++130PL/SQL过程己成功完成。(8)编写PL/SQL程序,查询5号员工工资,如果工资小于3000,则加200员工资,并提示信息“5号员工工资已更新。”如果工资大于3000,贝U提示信息“5号员工工资为XXX已达到规定标准。”程序代码如下:%type;beginselectwageintov_wage:..ifv_wage<=wage+200wherev_wage<3000;'5');('5号员工工资为'||v_wage||',已达到规定标准。');endif;end;/执行结果如下:号员工工资为13000,己达到规定标淮。PL/SQL过程已成功完成*编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高;程序代码如下:setserveroutputon;declarevarIdnumber;varWagenumber;resultevarchar2(20);=1;=1;resulte:=casewhenvarWage<=3000then'低'whenvarWage>3000andvarWage<=5000then'中'else'高'end;(resulte);end;/执行结果如下:23/冋:..PL/SQL过程己成功完成。(9)编写PL/SQL程序,查询的departments表中是否有部门号为“6”的记录,如果没有,插入新记录部门号为6,部门名称为“后勤部”。如果有,显示查询结果。程序代码如下:%type;=6;('部门号为'||v_dep_id||'的部门已存在');?'后勤部');('已插入完成');end;/Select*='6';Commit;执行结__________________过程厂广十声SQL>select*=J6*;BEP-IDDEP_NAME6后勤部40IVV五、实验总结通过这次上机实验,我有以下收获::..但是还上机操作过程中还存在以下几个方面的不足:六、教师评语教师签字:年月日
鄢鸿实验五oracle综合性实验指导书 来自淘豆网m.daumloan.com转载请标明出处.