
《大型数据库Oracle》实验指导书.doc
68页《大型数据库Oracle》编撰闽江学院计算机实验教学中心印制2010.8目录实验一 Oracle数据库管理与工具使用 2实验二 表连接、高级子查询 10实验三 管理存储结构、用户、权限安全、模式和表 16实验四 约束、索引、视图、序列和同义词 22实验五 PL/SQL编程基础 28实验六 触发器、过程、函数和程序包 40实验七 管理存储结构、备份与恢复 48实验八 C#.net Oracle数据库编程 57实验一 Oracle数据库管理与工具使用一、实验目的1. 掌握Oracle的启动、关闭、连接和管理初始化参数 2. 熟悉em和SQL*Plus的使用 3. 了解用户和模式的概念,并查询hr模式表的数据 二、实验环境1. 一台PC机 2. widows xp操作系统 3. (oracle 10g+sql developer)或 Oracle 11g 三、实验内容1. 启动和关闭window操作系统的Oracle服务 2. 使用SQL*Plus连接Oracle数据库 3. 使用SQL*Plus用sys用户关闭和启动 Oracle数据库(要用系统管理员的身份登陆) 4. 使用SQL*Plus和em企业管理器显示所有初始化参数 5. 解锁hr用户 6. 使用hr用户连接sqlplus,查询hr模式中的表的信息。
四、实验步骤,观察与记录及结果1.启动和关闭window操作系统的Oracle服务步骤(1): 进入windows xp操作系统 控制面板-》管理工具-》服务启动以下几个服务: OracleService(数据库名) OracleOraDb10g_home1TNSListener OracleOraDb10g_home1iSQL*Plus OracleDBConsoleorcl(启动em需要的服务)操作界面:学生操作结果界面:2.使用SQL*Plus连接Oracle数据库步骤(1): 进入windows xp操作系统 Oracle - OraDb10g_home1-》应用程序开发-》SQL Plus 输入:用户名:sys/orcl as sysdba 按确定操作界面:学生代码:步骤(2): 输入:Select * from hr.employees; 按回车可以查询该表数据操作界面:学生代码:学生操作结果界面:3.使用SQL*Plus用sys用户关闭和启动 Oracle数据库(要用系统管理员的身份登陆)步骤(1): 输入并执行如下SQL语句关闭Oracle数据库:shutdown immediate;学生代码:学生操作结果界面:步骤(2): 输入Select * from hr.employees; 按回车无法查询该表数据学生操作结果界面:步骤(3): 使用命令startup nomount; 启动与数据库对应的实例(不加载)学生代码:学生操作结果界面:步骤(4): 使用命令alter database mount; 为未加载数据库的实例加载数据库学生代码:学生操作结果界面:步骤(5): 使用命令alter database open; 将处于未打开状态的数据库设置为打开状态学生代码:学生操作结果界面:步骤(6): 使用命令shutdown immediate;startup;关闭数据库然后直接启动实例,加载数据库,打开数据库学生代码:学生操作结果界面:4.使用SQL*Plus和em企业管理器显示所有初始化参数步骤(1): 在SQL*Plus使用命令SHOW PARAMETER显示所有初始化参数学生代码:学生操作结果界面:步骤(2): 进入ie,http://服务器:1158/em(如 http://localhost:1158/em)进入em登录界面,并按指导界面输入用户名,密码和角色操作界面:学生操作结果界面:步骤(3): 在em界面中,选择“管理”页面-》在“数据库管理”区-》选择“所有初始化参数”链接进入所有初始化参数显示页面,并可进行查询和部分修改。
学生操作结果界面:5.解锁hr用户步骤(1): 使用em用system或sys登录,通过方案-》用户-》编辑hr用户为解锁,同时修改密码选择HR用户,并选择编辑如下:学生操作结果界面:步骤(2): 在sqlplus 用system或sys登录,使用以下命令完成hr用户解锁及重设密码 alter user hr account unlock; alter user hr identified by hr;学生代码:学生操作结果界面:6.使用hr用户连接sqlplus,查询hr模式中的表的信息步骤(1): 连接:Connect hr/hr;查hr模式有哪些表:Select table_name from user_tables;查询employees表内容: select * from employees;学生代码:学生操作结果界面:步骤(2): 查询Vendition模式“客户信息”表;Connect Vendition/Vendition;Select * from 客户信息;查询结果应该包括客户信息的所有列,并且包括该表的所有记录行学生代码:学生操作结果界面:步骤(3): 查询“客户信息”表“客户姓名”、“客户地址”和“联系”列内容:学生代码:学生操作结果界面:步骤(4): 在下面的SELECT语句中,将使用WHERE子句以限定检索的客户信息。
Select 客户姓名,客户地址,联系 From 客户信息 Where 所属业务员编号=’1001’ ;学生代码:学生操作结果界面:步骤(5): 下面创建的SELECT语句用于对“客户信息”表中的信息分组,输入并执行如下语句: SELECT 所属业务员编号 AS 业务员编号,COUNT(客户编号) AS 客户数 FROM 客户信息 GROUP BY 所属业务员编号;学生代码:学生操作结果界面:步骤(6): 将HAVING子句添加到刚才执行的SELECT语句中,输入并执行如下SQL语句 SELECT 所属业务员编号 AS 业务员编号,COUNT(客户编号) AS 客户数 FROM 客户信息 GROUP BY 所属业务员编号 HAVING COUNT(客户编号)>=3;学生代码:学生操作结果界面:步骤(7): 下面的SQL语句使用一组数据演示TRUNC函数与ROUND函数之间的区别和相同点SELECT TRUNC(46.326,2),ROUND(46.326,2) FROM DUAL; 运行该语句中,TRUNC函数的返回值为46.32,ROUND函数的返回值为46.33 SELECT TRUNC(46.326),ROUND(46.326) FROM DUAL;学生代码:学生操作结果界面:五、实验练习,观察与记录及结果步骤(1): sqlplus中sys用户使用什么命令从当前正在使用的SPFILE 建立PFILE(文件路径f:\mypfile.ini)正确代码:create pfile='f:\mypfile.ini' from spfile;学生代码: 学生操作结果界面:步骤(2): sqlplus中使用什么命令查看当前正在使用的SPFILE的文件路径正确代码:show parameter spfile;学生代码: 学生操作结果界面:六、相关知识由于实例是Oracle用来管理数据库的一个实体,在启动数据库时将在内存中创建与该数据库所对应的实例。
Oracle数据库的完整启动过程分为如下3个步骤:创建并启动与数据库对应的实例为实例加载数据库将数据库设置为打开状态 实验二 表连接、高级子查询一、实验目的1. 理解什么是连接操作,如何进行简单的连接操作,掌握如何进行内连接、外连接、交叉连接 2. 创建返回多行的子查询,创建返回单值的子查询,掌握嵌套子查询的使用 二、实验环境1. 一台PC机 2. widows xp操作系统 3. (oracle 10g+sql developer)或 Oracle 11g 三、实验内容1. 使用SQL语句分别进行简单的连接操作,内连接、外连接、交叉连接查询 2. 使用SQL语句分别创建返回多行的子查询,创建返回单值的子查询,掌握嵌套子查询的使用 四、实验步骤,观察与记录及结果1.使用SQL语句分别进行简单的连接操作,内连接、外连接、交叉连接查询步骤(1): 在sql plus中使用hr/hr连接 connect hr/hr;步骤(2): 输入并执行如下SQL语句SELECT S.SID , S.SNAME , S.SBIRTH , S.SCLASS , S.SADDRESS , C.DEPARTMENT , C.CNAMEFROM Student S , Class cWHERE S.SCLASS=C.CID;学生代码:学生操作结果界面:步骤(3): 输入并执行如下SQL语句:SELECT s.SID , s.SNAME , s.SCLASS, s.SADDRESS , c.DEPARTMENT , c.CNAME, d.dname FROME Student S,Class c , Department d WHERE s.SCLASS=c.CID AND c.DEPARTMENT=d.DID;学生代码:学生操作结果界面:步骤(4): 输入并执行如下SQL语句:SELECT s.SID , s.SNAME , s.SBIRTH, s.SCLASS, s.SADDRESS , c.DEOARTMENT , c.CNAME , d.dname FROM Student s JOIN Class c ON s.SCLASS=c.CID JOIN Department d ON c.DEPATMENT=d.DID;学生代码:学生操作结果界面:步骤(5): 输入并执行如下SQL语句:SELECT s.SID , s.SNAME , s.SBIRTH , s.SCLASS, s.SADDRESS , c.DEPARTMENT, c.CNAME,d.dname FROM Student s NATURAL JOIN Class c NATURAL JOIN DEPARTMENT dWHERE d.dname=’法律系’ ;学生代码:学生操作结果界面:步骤(6): 输入并执行如下SQL语句:SELECT s.SID , s.SNAME , s.SBIRTH , s.SCLASS, s.SADDRESS , c.DEPARTMENT , c.CNAME , d.dname FROM Student s RIGHT JOIN Class c ON s.sclass=c.cid RIGHT JOIN DEPARTMENT d ON c.department=d.did;学生代码:学生操作结果界面:2.使用SQL语句。
