1、实验四Oracle大数据库对象实验四 Oracle数据库对象一、实验目的了解Oracle的表、视图、索引、序列、同义词的基本概念和基本用法。二、实验内容和步骤1、查看用户具有的对象和可访问的对象(操作结果截图填入空白处)以SCOTT连接数据库。(1)查看用户模式中各种类型的对象数量select object_type,count(*) from user_objects group by object_type(2)确定用户模式有权访问的对象总数select object_type,count(*) from all_objects group by object_type(3)确定谁拥有用户
2、能够看见的对象select distinct owner from all_objects2、创建基本表(填入代码)创建上图基本表KHB,要求表创建在表空间USER_DATA3、创建临时表(填入代码)(1)创建一个基于会话的临时表。a) 创建临时表tmp_khb_1(与KHB同结构);b)插入一条记录khbh=00000001,khmc=aaa;c)以SCOTT用户启动第2个SQL*PLUS会话;d) 在第2个会话中查询tmp_khb_1;(操作代码及操作结果截图)观察是否可以看见第1个会话插入的数据,为什么?不能,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。e)插
3、入一条记录khbh=00000002,khmc=bbb;f)在第1个会话中查看第2个会话的数据;(操作代码及操作结果截图)观察是否可以看见第2个会话插入的数据,为什么?不能,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。g)在第1个会话中,将表截断;h)在第2个会话中,观察表中是否仍然存在记录;(操作代码及操作结果截图)表中是否仍然存在记录?为什么?是,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。(2)创建一个基于事务的临时表a) 创建临时表tmp_khb_2(与KHB同结构);b) 插入一条记录khbh=00000001,khmc=aaa
4、;c)查询tmp_khb_2;(操作代码及操作结果截图)d)事务提交commit;e)再次查询tmp_khb_2;(操作代码及操作结果截图)是否能查询到数据?为什么?不能,因为基于事务的临时表中的数据仅在事物过程中有效,当事物提交后,临时表的暂时段将被自动截断4、创建分区表(填入代码)(1)创建范围分区a) 创建范围分区表range_testrange_test ( t_id number primary key, item_id number(8) not null, item_description varchar2(300) )分区字段为t_id,以值10、20及2000select e
5、name, sal from emp where trunc(sal)20008、创建序列(填入代码)(1)创建一个表 create table tmp_sq(id int null,t_name varchar(20);(2)创建一个序列,初始值1,增量1,无最大值,序列不循环。(3)插入数据insert into TMP_SQ(id,t_name) values(SEQ_TEST.nextval ,aaa); insert into TMP_SQ(id,t_name) values(SEQ_TEST.nextval ,bbb); (4)建立触发器,当有数据插入表TMP_SQ时,使用Orac
6、le序列为其插入递增的主键值。create trigger TRG_TEST before insert on TMP_SQ for each rowbegin select SEQ_TEST.nextval into :new.ID from dual;end; (5)删除数据t_name=bbb(6)插入新数据t_name=ccc(7)显示当前表中数据(操作代码及操作结果截图) 9、创建同义词(填入代码)(1)公有同义词a)以system用户连接数据库b)创建EMP表的公有同义词Ec)以scott连接数据库d)访问同义词E(操作代码及操作结果截图)scott用户能访问system用户创建的
7、公共同义词E吗?_可以_ (2)私有同义词a)以system用户连接数据库conn sytem/toorb)创建DEPT表的私有同义词D_Screate synonym d_s for scott.dept;c)以scott用户连接数据库conn scott/tigerd)访问同义词D_S(操作代码及操作结果截图)scott用户能访问system用户创建的私有同义词D_S吗?_不能_ 三、实验思考1、两个表经常进行连接操作,为了提高连接的效率,可以对这两个表建立什么结构?2、序列的作用?序列生成了,怎么使用呢?当你需要一个自动增长的id或别的什么主键的时候,你可以用一个序列来解决问题。3、位图索引能加快检索的原因?索引就是通过事先排好序,从而在查找时可以应用二分查找等高效率的算法。一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n)。当n很大时,二者的效率相差及其悬殊。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1