Oracle 数据库中 游标实验报告

合集下载

oracle数据库实验报告

oracle数据库实验报告

oracle数据库实验报告《Oracle数据库实验报告》在当今信息化时代,数据库管理系统扮演着至关重要的角色。

Oracle数据库作为全球领先的企业级数据库管理系统,在各行各业都有着广泛的应用。

本次实验旨在通过对Oracle数据库的实验操作,深入了解其基本功能和特点,并探讨其在实际应用中的优势和局限性。

实验一:数据库的创建与连接在实验中,我们首先学习了如何使用SQL命令创建一个新的数据库,并通过用户名和密码连接到该数据库。

通过这一步骤,我们了解了Oracle数据库的基本操作流程,包括数据库的创建、用户的授权和连接等。

实验二:数据表的创建与管理在本次实验中,我们学习了如何使用SQL命令创建数据表,并进行数据的插入、查询、更新和删除操作。

通过这些操作,我们深入了解了Oracle数据库的数据管理功能,包括数据表的设计和维护等。

实验三:索引的创建与优化索引是数据库中非常重要的组成部分,能够提高数据的检索效率。

在本次实验中,我们学习了如何使用SQL命令创建索引,并通过优化查询语句来提高数据库的性能。

这些操作让我们更加深入地了解了Oracle数据库的优化功能,以及如何通过索引来提高数据库的性能。

实验四:备份与恢复数据库的备份与恢复是数据库管理中至关重要的一环。

在本次实验中,我们学习了如何使用Oracle数据库提供的工具进行数据库的备份和恢复操作。

这些操作让我们了解了数据库的灾难恢复功能,以及如何保障数据的安全性。

通过本次实验,我们深入了解了Oracle数据库的基本操作和功能,包括数据库的创建与连接、数据表的管理、索引的优化以及备份与恢复等。

同时,我们也发现了Oracle数据库在实际应用中的优势,如稳定性、安全性和性能优化等方面。

然而,我们也意识到Oracle数据库在一些特定场景下存在一定的局限性,如高昂的成本、复杂的配置和维护等。

总的来说,本次实验让我们更加深入地了解了Oracle数据库的特点和功能,对我们今后的数据库管理工作有着重要的指导意义。

Oracle实验报告模板

Oracle实验报告模板

实验报告实验名称:数据库的管理实验课时:2课时实验地点:知行楼305实验时间:年月日星期第周实验目的及要求:1)了解Oracle数据库的逻辑结构和物理结构。

2)熟悉Oracle的命令操作环境SQL*PLUS。

3)了解启动和关闭数据库的不同方式及其优缺点。

4)熟悉掌握各种启动、关闭方式。

实验环境:1)硬件设备:PC机一台2)操作系统:Windows XP3)应用工具:Oracle 11g实验内容:(算法、程序、步骤和方法)1、SQL*Plus的启动与关闭2、关闭数据库3、启动数据库4、改变数据库的状态5、使用DBCA创建数据库6、思考题小结:通过这次上机实验,我有以下收获:但是还上机操作过程中还存在以下几个方面的不足:指导老师评议:成绩:指导老师签名:年月日实验报告实验名称:表的管理实验课时:4课时实验地点:实验时间:年月日星期第周实验目的及要求:1)了解Oracle表和视图的概念。

2)熟练掌握使用SQL语句创建表。

3)学习使用SELECT语句查询数据。

实验环境:4)硬件设备:PC机一台5)操作系统:Windows XP6)应用工具:Oracle 11g实验内容:(算法、程序、步骤和方法)1)创建用户,指定密码、表空间。

用户名命名以本人姓名的缩写+_+学号后两位命名。

代码如下:2)创建如下表,将表保存到自己的用户方案中。

代码如下:3)为各表输入数据。

代码如下:4)查询每门课程被选修的学生数。

代码如下:5)查询出只选修了一门课程的全部学生的学号和姓名。

代码如下:6)查询男生、女生人数。

代码如下:7)查询姓“张”的学生名单。

代码如下:8)查询同名同姓学生名单,并统计同名人数。

代码如下:9)查询1981 年出生的学生名单。

代码如下:10)查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。

代码如下:11)查询平均成绩大于85 的所有学生的学号、姓名和平均成绩。

代码如下:12)统计每门课程的学生选修人数(超过10 人的课程才统计)。

《Oracle数据库》实验报告参考模板

《Oracle数据库》实验报告参考模板

河南财经政法大学计算机与信息工程学院
2011年---2012年第一学期
专业:信息管理与信息系统
课程名称:Oracle数据库
班级:
姓名:学号:
指导教师:张巧荣
实验一创建数据库和表
实验二表数据的插入、修改和删除
实验三数据库的查询
实验四数据库的视图
实验五索引和完整性
实验六用户、角色管理
实验七备份和恢复
实验八PL/SQL编程
实验九存储过程和触发器的使用
友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。

oracle大型数据库实验报告4

oracle大型数据库实验报告4

五、思考题及其它1、显示游标和隐式游标在用法上的区别?2、raise语句应该放在PL/SQL块的哪个部分?当在异常和oracle错误之间建立关联时,应该在哪个部分完成?3、实验报告要求本次实验书写两次,分别是(一)和(二)、(三)和(四)实验六:过程、函数、触发器实验学时:4实验类型:设计型一.实验目的及要求1.掌握过程的创建与维护;2.掌握函数的创建与维护;3.掌握触发器的创建于维护;4.了解包的使用。

二、实验主要内容1.过程的创建与维护;2.函数的创建与维护;3.触发器的创建于维护;4.包的使用。

三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。

服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验内容与步骤(一)、过程的创建与维护1、编写一个过程,可以输入一个雇员名,如果该雇员的的职位为PRESIDENT就给他的工资增加1000,如果该雇员的职位为MANAGER,就给他的工资加500,其他职位的雇员工资增加200。

并在SQL*PLUS中调用该过程以修改FORD的工资。

2、创建一个过程avg_sal,用于输出emp表中某个部门的平均工资,并在PL/SQL匿名块中调用该过程输出20号部门的平均工资。

3、从雇员基本信息表(EMP)中统计各部门(DEPTNO)人数后,将结果打印出来。

(选做)CREATE OR REPLACE PROCEDURE SUM_COUNT IS--创建一个游标,查询dept所有的部门编号Dept_cursor %ROWTYPE; --定义一个游标类型的变量--定义一个变量来存储部门人数BEGIN--打开游标LOOPINTO Dept_cursor;--读取游标SELECT COUNT(*) INTO num FROM empWHERE deptno= Dept_cursor.deptno;/*--填充代码,打印输出部门号及其对应的部门人数*/EXIT WHEN %NOTFOUND;--退出循环END LOOP;--关闭游标COMMIT;END;--执行存储过程sum_count(二)、函数的创建与维护1、创建一个函数get_sum_salary,获取某部门的人数(out参数)和工资总和(返回值)。

Oracle数据库实验-PLSQL游标、过程、函数、包的使用

Oracle数据库实验-PLSQL游标、过程、函数、包的使用

Oracle数据库实验-PLSQL游标、过程、函数、包的使用Oracle数据库基础实验5 PL/SQL游标、过程、函数、包的使用【实验学时】2学时【实验目的】1.了解PL/SQL语言中显式游标和隐式游标的概念和属性。

2.了解显式游标和隐式游标的差异。

3.掌握PL/SQL中cursor for循环的使用方法。

4.学会在PL/SQL程序中使用游标来解决实际问题。

5.学会在PL/SQL程序中进行异常处理的方法。

6.练习在PL/SQL中自定义异常。

7.理解过程和函数的作用。

8.学会编写过程、函数、包,并加以调用。

【实验内容】1.用显式游标编写程序,程序的功能是:计算每一个部门的平均工资。

注意异常的处理(例如,分母为0的异常)。

已写入文件afiedt.buf1 declare2 cursor c_dept is select * from dept order by deptno;3 cursor c_emp(p_dept emp.deptno%type)is selectename,sal from emp where deptno=p_dept4 order by ename;5 r_dept dept%rowtype;6 v_ename emp.ename%type;7 v_salary emp.sal%type;8 v_tot_salary emp.sal%type;9 begin10 open c_dept;11 loop12 fetch c_dept into r_dept;13 exit when c_dept%notfound;14dbms_output.put_line('department:'||r_dept.deptno||'-'||r_de pt.dname);15 v_tot_salary:=0;16 open c_emp(r_dept.deptno);17 loop18 fetch c_emp into v_ename,v_salary;19 exit when c_emp%notfound;20dbms_output.put_line('name:'||v_ename||'salary:'||v_salary);21 v_tot_salary:=v_tot_salary+v_salary;22 end loop;23 close c_emp;24 dbms_output.put_line('total salary fordept:'||v_tot_salary);25 end loop;26 close c_dept;27* end;SQL> /PL/SQL 过程已成功完成。

数据库游标实验报告

数据库游标实验报告

计算机系一、实验目的1、掌握创建游标的方法和步骤;2.掌握游标的使用方法;二、实验内容1、游标的创建;2、游标的使用方法。

三、实验步骤1、游标的创建。

1)使用S_C数据库中的S表、C表、SC表创建一个存储过程—sp_CURSOR1。

该存储过程的作用是:显示所有的课程信息,如果成绩>=90显示成绩本身;成绩>=80显示良;成绩>=70显示中;成绩>=60显示及格;成绩>=0显示不及格;如果没有成绩则显示无成绩。

信息还包含学号,姓名,课程和成绩,显示格式如下:学号---姓名---课程---成绩,如图1所示。

要求使用游标技术实现上述要求,使用Print语句实现显示。

图1 成绩显示格式sp_CURSOR1的创建语句:create proc sp_CURSOR1asDeclare @sname varchar(50)Declare @sno varchar(20)Declare @cno varchar(20)Declare @cname varchar(20)Declare @grade varchar(20)Declare SCursor Cursor ForSelect sno,cno,grade From SCOpen SCursorFetch Next From SCursor Into @sno,@cno,@gradeWhile@@FETCH_STATUS= 0beginselect @sname=sname From S where sno=@snoselect @cname=cname From C where cno=@cnoif(@grade ='')Print @sno+@sname+@cname+'null'else if(@grade >= 90)Print @sno+@sname+@cname+@gradeelse if(@grade >=80)Print @sno+@sname+@cname+'良'else if(@grade >=70)Print @sno+@sname+@cname+'中'else if(@grade >=60)Print @sno+@sname+@cname+'及格'elsePrint @sno+@sname+@cname+'不及格'Fetch Next From SCursor Into @sno,@cno,@gradeEndClose SCursorDeallocate Scursorgo结果描述:2、游标的使用。

《Oracle数据库》实验报告

《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时)【实验目的】(1)掌握PL/SQL 的基本使用方法。

(2)在SQL*PLUS环境下运行PL/SQL的简单程序。

(3)应用PL/SQL 解决实际问题【实验内容与步骤】一、实验内容:1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。

2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。

3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%,其它都按原来的7%提高。

4、用PL/SQL块实现下列操作公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门,则增加$250;若职工属于10号部门,则增加$350。

(提示:游标请自行阅读相关内容)DECLAREaddcomm m%type;CURSOR emp_cursor IS select deptno from emp;BEGINFOR emprec IN emp_cursor LOOPIF emprec.deptno=30 THEN addcomm:=150;ELSIF emprec.deptno=20 THEN addcomm:=250;ELSIF emprec.deptno=10 THEN addcomm:=350;END IF;Update empset comm=comm+ addcomm where deptno= emprec.deptno;END LOOP;COMMIT WORK;END;实验三PL/SQL触发器和存储过程(2学时)【实验目的】(1)了解触发器的类型。

(2)掌握PL/SQL触发器的使用方法。

(3)了解存储过程的使用方法。

(4)掌握存储过程的使用方法。

【实验内容】实验内容:1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。

《Oracle技术》实验报告5(答案)1

《Oracle技术》实验报告5(答案)1

《Oracle技术》实验报告实验名称PL/SQL编程(选作10题,程序另加附页)姓名学号日期专业班级实验目的(1)了解PL/SQL块的基本结构和分类。

(2)熟练掌握编写PL/SQL块的方法。

(3)了解PL/SQL存储过程、触发器、游标的作用。

(4)熟练掌握编写PL/SQL存储过工程的方法及维护过程。

(5)熟练掌握创建触发器的方法及维护过程。

(6)孰练掌握显式游标和隐式游标的使用。

实验内容(1)编写一个PL/SQL块,输出所有员工的员工名、员工号、工资和部门号。

BEGINFOR v_emp IN (SELECT * FROM EMP) LOOP DBMS_OUTPUT.PUT_LINE(v_emp.ename||’‘||v_emp.empno|| ’‘||v_emp.sal||’‘|| v_emp.deptno);END LOOP;END;/(2)编写一个PL/SQL块,查询名为“SMITH”的员工信息,并输出其员工号、工资、部门号。

如果该员工不存在,则插入一条新记录,员工号为2007,员工名为“SMITH”,工资为1500,部门号为10。

如果存在多个名为“SMITH”的员工,则输出所有名为“SMITH”的员工号、工资和部门号。

成绩DECLAREV_empno emp.empno%type;V_sal emp.sal%type;V_deptno emp.deptno%type;BEGINSELECT empno,sal,deptno INTOV_empno,v_sal,v_deptno FROM emp WHERE ename=’SMITH’;DBMS_OUTPUT.PUT_LINE(v_empno||’’||v_sal||’’||v_dept no);EXCEPTIONWHEN NO_DATA_FOUND THENINSERT INTO EMP(empno, ename,sal,deptno)V ALUES(2007,’SMITH’,1500,10);WHEN TOO_MANY_ROWS THENFOR v_emp IN (SELECT empno,sal,deptno FROM emp WHERE ename=’SMITH’) LOOPDBMS_OUTPUT.PUT_LINE(v_emp.empno||’‘||v_emp.sal|| ’‘||v_emp.deptno);END LOOP;END;/(3)创建一个存储过程,以员工号为参数,输出该员工的工资。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 数据库实验报告
系别:*******
班级:*******
姓名:*******
学号:*******
指导老师:****
一.实验名称
用带参数游标的FOR循环依此输出每一个部门名称,在部门名称的下面输出该部门的员工姓名和工资,按工资的升序排列。

二.实验目的
通过本次实验,逐渐熟悉oracle数据库的应用及输出的格式,更加深刻的了解其输出的语法,变量的定义及赋值和操作环境以及循环结构,异常的捕获,定义,处理,Oracle数据库中表的创建,插入,及表中所需数据的提取,掌握游标的定义,使用。

三.实验步骤
开始——运行输入cmd,出来oracle运行界面,代码如下:
DECLARE --变量,游标的声明;
CURSOR dept_cursor IS SELECT Dname,Deptno FROM DEPT; --游标的定义;
CURSOR emp_cursor(v_dept CHAR) IS SELECT Ename,Salary FROM EMP WHERE deptno=v_dept ORDER BY Salary;--按工资升序排序格式输出;
BEGIN
FOR dept_record IN dept_cursor LOOP --for循环,查询的结果单独的输出;
DBMS_OUTPUT.PUT_LINE('部门名称为:
'||dept_record.Dname||chr(10)||'部门编号:'||dept_record.Deptno); --输出语句;
FOR emp_record IN emp_cursor(dept_record.Deptno) LOOP DBMS_OUTPUT.PUT_LINE('员工姓名为:'||emp_record.Ename||'员工工资为:'||emp_record.Salary); END LOOP;
END LOOP;
END;
/
四.实验结果
五.实验总结
通过这次的上机实验,我学到了很多很多,更加了解oracle 数据及运行环境,变量定义,变量的赋值,语句的嵌套,循环的应用,异常的分类,异常的定义,异常的处理,Oracle数据库中表的创建,插入,及表中所需数据的提取,游标的定义,使用。

它让我知道了编程序需要耐心,需要细心,需要坚持不懈,不能
一遇到困难就放弃,就不编了。

相反的,在编程、调试过程中的遇到的困难让我更加的对专业课感兴趣。

编程的过程中,用到了很多的知识,这次实训对我来说很有意义,它改变了我以前的编程思想,使我的思想更加活跃(编程),考虑得更周到,这次实验让我增加了信心,对未来充满了希望。

相关文档
最新文档