《Oracle大型数据库实验报告(共60页).doc》由会员分享,可在线阅读,更多相关《Oracle大型数据库实验报告(共60页).doc(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实 验 报 告课程名称: 大型数据库系统 实验项目: 数据库实验 实验地点: 逸夫楼302 专业班级: 软件1013班 学号: 学生姓名: 荆婉 指导教师: 沈晋原 2013年 4 月 12 日太原理工大学实验报告一学院名称软件学院专业班级1013实验成绩学生姓名荆婉学号实验日期2013.3.12013.3.8课程名称大型数据库系统 实验题目1、Oracle 11g 的安装与配置2、创建数据库和表一、 实验目的和要求:了解Oracle 11g的下载、解压及安装过程和正确的安装步骤。了解和解决安装过程中的各种问题,以成功的安装这一大型数据库软件,使其相应的OEM, SQ
2、L Plus 和SQL Developer都能够正常工作。了解数据库的结构以及一些基本概念;了解表的结构特点;了解oracle 11g的基本数据类型;学会使用DBCA创建数据库;学会使用界面方式创建表;学会使用SQL语句手工创建数据库;学会使用SQL语句创建表。二、实验内容:1、下载Oracle 11g2、在笔记本电脑上解压和安装此大型数据库系统3、解决安装过程中出现的各种问题,使其能够正常工作。给出安装阶段相应的截图以显示安装的成功。以及最终安装成功后打开的OEM界面、SQL Plus的登录界面和SQL Developer的界面。4、创建企业管理的员工管理数据库YGGL或在上列步骤中创建的数
3、据库中创建下列表: employees表、departments表和salary表。各表的结构如教材p307-308页所示。5. 利用DBCA创建数据库。如教材p308页所示。为避免破坏以建立的数据库,此步骤中只要求给出书中要求各步骤的相应DBCA截图,而不完成其实际操作。6、利用DBCA删除数据库。给出截图,不做实际操作。7、根据教材p309页的要求,在YGGL或实验一创建的数据库的OEM中分别创建表。给出相应截图。8、根据教材p309页的要求,在YGGL或实验一中创建的数据库的OEM中删除已创建的表。给出相应截图。9、在SQL Developer中创建表根据教材p309页的要求,用SQL
4、Developer在YGGL或实验一中创建的数据库重建上述各表。注意,连接名可直接用数据库名而不必加_ora,但要保证SID名要与数据库名一致。给出相应过程及结果截图。10、使用SQL Developer删除所创建的Employees表。步骤如教材p310页所示。给出相应过程及结果截图11、使用PL/SQL命令语句创建Employee表。此内容可在SQL Plus 或SQL Developer环境中完成,如教材p310页所示。给出相应语句段及结果截图。教材中的思考与练习部分可略去。三、主要仪器设备1、笔记本电脑及相应的Windows Operating Systems.2、已安装的Oracle
5、 11g大型数据库及其相应的配套软件。四、主要操作方法与实验步骤(可选):1、下载Oracle 11g(步骤略)2、在笔记本电脑上解压和安装此大型数据库系统(步骤略)3、解决安装过程中出现的各种问题,使其能够正常工作。给出安装阶段相应的截图以显示安装的成功。以及最终安装成功后打开的OEM界面、SQL Plus的登录界面和SQL Developer的界面。安装oracle 11g1.解压两个压缩包到同一目录,即database,然后单击解压目录下的setup.exe文件,如下图所示:2.执行安装程序后会出现如下的命令提示行。3.等待片刻之后就会出现启动画面 4.稍微等待一会,就会出现如下图所示的
6、安装画面,取消下图所示的选中,然后单击下一步继续,同时在出现的信息提示框单击是继续。5.之后就会出现安装选项对话框,默认点击下一步继续6 之后会出现安装类型对话框,点击下一步继续,如果奔出你是安装在Windows Server上的话就选择服务器类。7 然后就是安装配置,在这要注意的是:管理口令的格式要至少包含一个大写字母,一个小写字母和一个数字,否则会提示警告,正确输入后点击下一步继续。8. 之后会出现先决条件检查对话框,选中全部忽略并单击下一步以继续90 之后点击完成就开始安装了10 安装画面如下图所示:11 当上述进度到达100%时会出现线面的对话框,请耐心等待它完成。12 然后再弹出的确
7、认对话框点击确定这时会回到主界面然后再单击关闭完成安装。13 至此,Oracle11g R2已经安装完成,你可以在开始菜单-Oracle - OraDb11g_home1-Database Control - orcl中打开访问网址14 登陆:在连接身份里选择SYSDBA,再用户名处输入sys,密码为你最初设定的密码,点击登陆你就可以访问数据库了15. OEM界面如下16. 、SQL Plus的登录界面17. SQL Developer的界面。4、 创建企业管理的员工管理数据库YGGL或在上列步骤中创建的数据库中创建下列表: employees表、departments表和salary表。各表
8、的结构如教材p307-308页所示。Employees表结构如下Departments表结构如下Salary表结构如下5. 利用DBCA创建数据库。如教材p308页所示。为避免破坏以建立的数据库,此步骤中只要求给出书中要求各步骤的相应DBCA截图,而不完成其实际操作。创建数据库6、 利用DBCA删除数据库。给出截图,不做实际操作。然后点击完成即可7、根据教材p309页的要求,在YGGL或实验一创建的数据库的OEM中分别创建表。给出相应截图。单击“创建”创建表Employees如下点击“确定”即可创建创建表Departments如下单击“确定”即可创建创建表Salary如下单击“确定”即可创建7
9、、 根据教材p309页的要求,在YGGL或实验一中创建的数据库的OEM中删除已创建的表。给出相应截图。删除Employees表如下点击“使用选项删除”即可删除该表删除Departments表如下点击“使用选项删除”即可删除该表删除Salary表如下点击“使用选项删除”即可删除该表9、在SQL Developer中创建表根据教材p309页的要求,用SQL Developer在YGGL或实验一中创建的数据库重建上述各表。注意,连接名可直接用数据库名而不必加_ora,但要保证SID名要与数据库名一致。给出相应过程及结果截图。创建数据库连接:创建Employees表如下点击“确定”即可创建创建Depa
10、rtments表如下点击“确定”即可创建创建Salary表如下点击“确定”即可创建10、使用SQL Developer删除所创建的Employees表。步骤如教材p310页所示。给出相应过程及结果截图进入如下所示点击“应用”即可删除11、使用PL/SQL命令语句创建Employee表。此内容可在SQL Plus 或SQL Developer环境中完成,如教材p310页所示。给出相应语句段及结果截图。在SQL*PLUS中创建Employee表如下五、实验结果与分析1. 在安装数据库时一切都很顺利,并没有出现什么错误或警告,但是当我删除了安装数据库时系统自带的数据库时,在想重新建立一个新的数据库时
11、,且出现了监听器错误,然后我就修改了一些环境变量,结果SQL*PLUS及SQL developer可以正常使用,但是OEM无法正常启动,且在开始程序里也没有显示我所创将的数据库,让我看到很苦恼,于是就又重新卸载安装了一遍,现在使用的是系统自带的数据库,这个问题还有待解决。2.创建数据库和表时,我并没有遇到什么困难,很成功的在SQL*PLUS、SQL developer及OEM中创建了三个表。六、讨论、心得(可选)通过此次实验,我体会很多,首先我觉得安装一个软件时,我们一定要一步步看仔细了在选择相应的选项,否则,后期会出现很多意想不到的错误。另外,我认为,在软件遇到错误的时候不能只想着卸载重装,
12、应该有信心去解决问题,这样我们会从中得到意想不到的收获。此次实验让我对ORACLE 11g数据库有了一定的认识,并学会了如何创建、如何删除数据表,为接下来的实验打下了一定的基础!教师签字:太原理工大学实验报告二学院名称软件学院专业班级1013实验成绩学生姓名荆婉学号实验日期2013.3.8课程名称大型数据库系统 实验题目3、表数据插入、修改和删除4、数据库查询和视图操作一、 实验目的和要求:学会使用PL/SQL语句对数据库表进行插入、修改和删除数据的操作;学会使用SQL DEVELOPER对数据库表进行插入、修改和删除数据的操作;了解数据更新操作时要注意数据完整性;了解PL/SQL语句对表数据
13、操作的灵活控制功能。掌握SELECT语句的基本语法;掌握子查询的表示方法;掌握连接查询的表示方法;掌握数据汇总的方法;掌握SELECT语句的GROUP BY子句的作用和使用方法;掌握SELECT语句的ORDER BY子句的作用和使用方法;掌握视图的使用方法。二、 实验内容:分别使用SQL Developer和PL/SQL语句,在实验二建立的数据库YGGL或实验一随安装Oracle 11g时建立的数据库中所建立的三个表Employees, Departments和Salary中分别插入多行数据记录,然后修改和删除一些记录。使用PL/SQL进行有限制的修改和删除。表的内容如教材p311页所示。1、
14、使用SQL Developer操作数据 内容如教材p311-p312页所要求,给出相应过程及结果截图。2、使用PL/SQL命令操作数据 内容如教材p312页所要求,给出相应语句段及结果截图。1、SELECT语句的基本使用 按照教材p313-p314的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。2、子查询的使用 按照教材p314-p315的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。3、连接查询的使用 按照教材p315的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。4、数据汇总 按照教材p315-p316的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。
15、5、GROUP BY 和ORDER BY子句的使用 按照教材p316-p317的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。6、使用视图 按照教材p317的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。 教材中的思考与练习部分可略去。三、主要仪器设备1、笔记本电脑及相应的Windows Operating Systems.2、已安装的Oracle 11g大型数据库及其相应的配套软件。四、主要操作方法与实验步骤(可选):1、使用SQL Developer操作数据 内容如教材p311-p312页所要求,给出相应过程及结果截图。向Employees表中插入数据如下向Depart
16、ments表中插入数据如下向Salary表中插入数据如下2、使用PL/SQL命令操作数据 内容如教材p312页所要求,给出相应语句段及结果截图。1、Employees表中插入insert into Employees values(,洛林,TO_DATE(26-9月-73,DD-MON-RR),1,解放路 100-5, , , 5);结果如下:2、Department表中插入insert into DepartmentsVALUES (7, 人事部, NULL);结果如下:3、Salary表中插入 insert into SalaryVALUES (, 1200.09, 50.0);结果如下:
17、修改表数据:1、 修改表Salary中的某个记录的值update Salaryset income=2890where EmployeeID=;修改前:修改后:修改表Salary中的所有记录的字段值Update SalarySet Income=Income+100;修改前:修改后:修改Employees和Department的记录值同理如上。删除表数据:三、 使用DELETE语句删除Salary表中一行记录Delete from Salary where EmployeeID=;删除前:删除后:1、SELECT语句的基本使用 按照教材p313-p314的内容和步骤完成实验内容。给出相应语句段
18、和结果的对应截图。(1)select * from Employees;(2)Select Address,PhoneNumberFrom Employees;(3)select Address,PhoneNumberfrom Employeeswhere EmployeeID=;(4)select Address AS 地址,PhoneNumber AS 电话from Employeeswhere sex=0;(5) select EmployeeID,InCome-OutCome AS 实际收入From Salary;(6)select DepartmentIDFrom Employees
19、Where name LIKE王%;(7)select EmployeeIDFrom salaryWhere InCome between 2000 and 3000;2、子查询的使用 按照教材p314-p315的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。(1)select *From Employees Where departmentID= (select DepartmentId from Departments where DepartmentName=财务部);(2)select Name From Employees Where departmentID IN (se
20、lect DepartmentID from Departments where DepartmentName=财务部) and BrithdayAll (select InCome from Salary where DepartmentID IN (select DepartmentID from Employees where DepartmentID=(select DepartmentID from Departments where DepartmentName=财务部);3、连接查询的使用 按照教材p315的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。(1)selec
21、t Employees.*, Salary.*from Employees,Salarywhere employees.Employeeid=Salary.Employeeid;(2)select Name,InCome,OutComefrom Employees,Salary,Departmentswhere Employees.EmployeeID= Salary.EmployeeID andEmployees.DepartmentID= Departments.DepartmentID andDepartmentName=财务部 and InCome2000;4、数据汇总 按照教材p31
22、5-p316的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。(1)select AVG(InCome-OutCome) AS 财务部平均实际收入from Salary where EmployeeID IN (select EmployeeID from Employees where DepartmentID=(select DepartmentID from Departmentswhere DepartmentName=财务部);(2)select AVG(InCome) AS 财务部平均收入from Salary where EmployeeID IN (select Emp
23、loyeeID from Employeeswhere DepartmentID=(select DepartmentID from Departmentswhere DepartmentName=财务部);(3)select count(EmployeeID) from Employees where DepartmentID=(select DepartmentID from Departmentswhere DepartmentName=财务部);5、GROUP BY 和ORDER BY子句的使用 按照教材p316-p317的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。(1)
24、 select count(EmployeeID)From EmployeesGroup by DepartmentID;(2)select Employees.*,Salary.*from Employees,Salarywhere Employees.EmployeeID=Salary.EmployeeIDorder by InCome;6、使用视图 按照教材p317的内容和步骤完成实验内容。给出相应语句段和结果的对应截图。8、 创建视图create or replace view cx_employeesAS select EmployeeID,Name,Brithday,Sex,Dep
25、artmentIDfrom Employees;create or replace view cx_salaryAS select Name,InCome,OutComefrom Employees,Salary,Departmentswhere Employees.EmployeeID= Salary.EmployeeID andEmployees.DepartmentID= Departments.DepartmentID andDepartmentName=财务部;(2) 使用视图查询财务部雇员的信息select * from cx_employees;查询财务部薪水情况select *
26、 from cx_salary;insert into cx_employees values (,张无忌,TO_DATE(78-8月-23,DD-MON-RR,1,3);update cx_employees set DepartmentID=5where Name=张无忌;delete from cx_employees where Name=张无忌;五、实验结果与分析1.在表数据的插入、修改和删除中,在插入时首先要注意对应列要正确,否则影响列的插入,其次就是注意符号。这样就可以成功的完成对表数据的操作。2.在数据查询和视图中,我认为实验本身并不难,但是我们一定要学会怎样写一个程序,这样才
27、能真正的掌握。六、讨论、心得(可选)此次实验中,我得出的最深一点的体会是,我们编程人员一定要细心,很多错都是因为我们不细心造成的,而且这种错误有时候很难被发现,所以平时我们就应该从小程序开始锻炼我们的这种能力。其次,我们在编程时,一定要有足够的耐心,有时候耐心可以战胜一切,在检查错误时,我们只要坚持一下在坚持一下,错误就会迎刃而解!教师签字:太原理工大学实验报告三学院名称软件学院专业班级1013实验成绩学生姓名荆婉学号实验日期2013.3.152013.3.22课程名称大型数据库系统 实验题目5、用户和权限管理6、显式游标一、实验目的和要求:掌握数据库的安全性能;掌握使用用户实现数据库的安全性
28、;掌握使用角色实现数据库的安全性;掌握使用概要文件实现数据库安全性。掌握显式游标的定义和使用方法。二、实验内容:1、创建用户按照教材p326的要求创建用户。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。2、创建角色按照教材p326-p327的要求创建角色。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。3、创建概要文件按照教材p326-p327的要求创建角色。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。教材中的思考与练习部分可略去。4、使用游标和loop循环来显示所有部门的名称。给出相应语句段和结果的对应截图。
29、5、接受用户输入的部门编号,用for循环和游标, 显示此部门的所有雇员的所有信息。给出相应语句段和结果的对应截图。三、主要仪器设备1、笔记本电脑及相应的Windows Operating Systems.2、已安装的Oracle 11g大型数据库及其相应的配套软件。四、主要操作方法与实验步骤(可选):1、创建用户按照教材p326的要求创建用户。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。connect system/ as SYSDBAcreate user MANAGERprofile DEFAULTidentified by managerdefault ta
30、blespace USERStemporary tablespace TEMPaccount unlock;grant SYSDBA to MANAGER;grant CONNECT to MANAGER;grant DBA to MANAGER;alter user manager grant connect through system;2、创建角色按照教材p326-p327的要求创建角色。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。creat role adminidentified by manager;grant SYSDBA to admin;gran
31、t SYSOPER to admin;grant CONNECT to admin;grant DBA to admin;3、创建概要文件按照教材p326-p327的要求创建角色。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。create profileYGGL_PROFILEcomposite_limit default failed_login_attempts 3password_lock_time 20 password_grace_time 60password_life_time 30 password_reuse_max unlimitedpasswo
32、rd_reuse_time 120 password_verify_function default;教材中的思考与练习部分可略去。4、使用游标和loop循环来显示所有部门的名称。给出相应语句段和结果的对应截图。1.declare v_ch char(20); cursor CS_CURSisselect DepartmentName from Departments;begin open CS_CURS; fetch CS_CURS into v_ch; while CS_CURS%FOUND loop dbms_output.put_line(v_ch);fetch CS_CURS int
33、o v_ch; END LOOP; close CS_CURS; end;5、接受用户输入的部门编号,用for循环和游标, 显示此部门的所有雇员的所有信息。给出相应语句段和结果的对应截图。 分别输入以下替换变量:五、实验结果与分析1.在创建用户、创建角色和创建概要文件时,刚开始我怎么也调试不出来,后来我就翻阅了书前面的内容,后来才知道实验上的程序出了问题,在我的修改下终于成功的创建了。2.游标的这两个程序都是我自己写出来的,写第一个的时候还很有成就感,但是到了第二个程序,我就遇到了困难,后来跟同学讨论了一下终于做了出来,但是还有不完善的地方,比如有些地方过于繁杂,我想应该还有更简便的方法,但是
34、可能以我现在的水平还不足以将其简单化,所以今后一定要更加钻研这方面。六、讨论、心得(可选)此次实验是我在这几个实验中花费时间最长的一次,原因是别的程序都是书上写好的,只要输进去就可以成功运行,但此次实验基本都是自己修改或写出来的,所以,我感觉要真的自己去写程序真的不是一件简单的事,是要花费一定的时间和精力的,但是,收获却比前几个实验都多,让我对Oracle产生了很大的兴趣和好奇心!教师签字:太原理工大学实验报告四学院名称软件学院专业班级1013实验成绩学生姓名荆婉学号实验日期2013.3.292013.4.5课程名称大型数据库系统 实验题目7、创建存储过程和存储函数8、创建触发器一、实验目的和
35、要求:掌握存储过程的使用方法;掌握触发器的使用方法。二、实验内容:1、创建触发器 按照教材p321-p322的要求创建触发器。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。 2、创建存储过程 按照教材p322-p323的要求创建存储过程。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。 3、调用存储过程 按照教材p323的要求调用存储过程。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。 教材中的思考与练习部分可略去。三、主要仪器设备1、笔记本电脑及相应的Windows Operating Systems.2、已安
36、装的Oracle 11g大型数据库及其相应的配套软件。四、主要操作方法与实验步骤(可选):1、创建触发器 按照教材p321-p322的要求创建触发器。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。向Employeea表插入或修改一条记录时,通过触发器检查记录的值在Departments表是否存在,若不存在,则取消插入或修改操作。检查:修改Department表departmentID字段时,该字段在Employees表中的对应值也作相应的修改。检验:update DepartmentsSet EmployeeID=;where EmployeeID=;执行该语句:d
37、elete from Departments where DepartmentID=1;删除Departments表中DepartmentID的值为1的记录,删除后如下所示:相应的Employees表中,DepartmentID的值为1的记录也被删除,如下图所示: 2、创建存储过程 按照教材p322-p323的要求创建存储过程。数据库可用YGGL或实验一中创建的数据库。给出相应语句段和结果的对应截图。(1) 添加职员记录的存储过程EmployeeAdd。create or replace procedure EmployeeAdd(employeeid in char,name in char
38、,birthday in date, sex in number,address in char,zip in char,phonenumber in char, departmentID in char)asbegininsert into Employeesvalues(employeeid, name, brithday, sex, address, address, zip, phonenumber, departmentID);commit;end;/EmployeeAdd成功添加,如下所示(2) 修改职员记录的存储过程EmployeeUpdate。create or replace
39、 procedure EmployeeUpdate(old_id in char,new_id in char,new_name inchar,new_brithday in date,new_sex in number, new_address in char, new_zip in char,new_phonenumber in char,new_departmentID in char)asbeginupdate Employeesset EmployeeID=new_id,Name=new_name,Brithday=new_birthday,Sex=new_sex,Address=n
40、ew_address,Zip=new_zip,Phonenumber=new_phonenumber,DepartmentID=new_departmentIDwhere EmployeeID=old_id;commit;end;/(3) 删除职员记录的存储过程EmployeeDeletecreate or replace procedure EmployeeDelete(id in char)asbegindelete from Employeeswhere EmployeeID=id;commit;end;/ 3、调用存储过程 按照教材p323的要求调用存储过程。数据库可用YGGL或实验一
41、中创建的数据库。给出相应语句段和结果的对应截图。Begin EmployeeAdd(,刘朝,TO_DATE(9-9月-89,DD-MON-RR),1,武汉小红山5号,3);end;Begin EmployeeUpdate(,TO_DATE(9-9月-89,DD-MON-RR),1,武汉小红山5号,2);end;begin EmployeeDelete();end;五、实验结果与分析1.刚开始做这个实验的时候,我都没有理解是什么意思,后来经过了实际的操作和验证,我终于知道要干什么了,这个实验就是要建立表与表之间的连接,使用户在使用表的时候受一定条件的限制,确保数据的安全。2.创建触发器以及在调用触发器时,并没有出现什么大的问题,但是书上的调用触发器,我是怎么也运行不出来,后来我就将其修改了一下,现在可以了。六、讨论、心得(可选)此次实验的Oracle的最后一个实验,这个实验的难度适中,并没有遇到什么太大的问题,通过此次实验,我虽然没有感觉到这个大型数据库到底对我们的实际生活有多大作用,但是,我已经隐隐约约的体会到它的强大力量,这次实验我觉得自己只是接触到了Oracle数据库的皮毛,要想真正的了解并使用它,还需要以后