oracle11g附录实验4,Oracle大型数据库系统基础实验指导书

巢湖学院

/*对包内共有元素的调用格式为:包名.元素名称

调用DEMO_PKG包内函数对dept表进行插入、查询和删除操作,

并通过DEMO_PKG包中的记录变量DEPTREC显示所查询到的数据库信息:*/

五、思考题及其它

1、传递参数方式有哪些? 2、过程与函数的使用原则?

3、before、after、instesd of 触发器分别用在什么场合?

29

巢湖学院

实验七 表、视图、索引、同义词、序列

实验学时:2

实验类型:设计型

一、实验目的

1、掌握SQL语言中表、索引、视图的创建及其使用方法。 2、掌握SQL语言中查看索引、同义词、序列生成器创建方法。

二、实验环境

1、硬件设备:计算机局域网,服务器1台,客户机100台

2、软件系统: Windows XP客户机操作系统; Oracle11g服务端数据库系统,客户端工具。

三、实验内容及步骤

(一)表的创建、维护及其使用方法

1.创建表空间

(1) 创建表空间名称为Medicine

要求:表空间文件路径为‘D:\\oracle\\oradate\\mybase\\ Medicine.dbf’,大小为50M;

采用本地化管理(LOCAL),盘曲扩展采用自动方式 ;同时采用手工段空间管理方式,并记录日志信息。

2.创建表结构

利用SQL*PLUS或PL/SQL developer将下列各表建立到员工医疗保险系统数据库中。表结构见附录员工医疗保险系统表1~表4所示。 3.查看表结构

(1) 利用SQL*Plus从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表的字段信息。

(2) 利用SQL*Plus从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表的约束信息。

4.修改表结构

(1) 利用SQL*Plus将表“staff”重新命名为“staff_学号后两位 (如staff_12)”。 (2) 利用SQL*Plus为“staff_学号后四位”表添加“age INT”、“salary NUMBER(5,2)”两个字段,利用DESC命令查看“staff_学号后两位”表的字段信息。

(3) 利用SQL*Plus向“staff_学号后两位”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_学号后两位”表的约束信息。

(5) 利用SQL*Plus删除“staff_学号后两位”表上“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_学号后两位”表的约束信息。

(6)利用SQL*Plus将“staff_学号后四位”表“sname”字段长度修改为30,利用DESC命令查看“staff_学号后两位”表的字段信息。 4.插入表数据(选做)

(1) 分别利用SQL*Plus 向员工医疗保险系统的每个表中插入记录。记录插入数据过程中遇到的问题及解决方法,注意体会各种约束对插入数据的影响和表数据的插入顺序。

30

巢湖学院

(2) 利用SQL*Plus创建员工表2(“staff2”),向表中插入5条不同的记录,注意与员工表中数据必须不同,主要体现在主键员工编号上,执行下面的操作:

● 用多行数据插入的方法将员工表2中数据插入到员工表,观察执行的结果。 ● 将命令再执行一次,观察执行的结果,分析产生的错误原因。

(3) 利用SQL*Plus且使用表间数据复制的方法创建员工表3(“staff3”),将全部字段的值复制到员工表3,查看员工表3的内容,体会表间数据复制的含义。

(4) 利用SQL*Plus且使用表间数据复制的方法创建员工表4(“staff4”),将部分字段的值复制到员工表4,查看员工表4的内容,比较员工表3和员工表4中数据的不同,进一步体会表间数据复制的含义。 5.删除表数据(选做)

(1) 利用SQL*Plus删除某医院编号的医院信息,看能否成功。查看就诊表数据,从原理上解释原因,同时记录数据删除过程中遇到的问题及解决方法,注意体会外键约束数据删除方式对删除数据的影响。

(2) 利用ROLLBACK命令恢复所有数据。 6.删除表结构(选做)

(1) 利用SQL*Plus删除员工表3,看能否成功。从原理上解释原因,同时记录外键约束表删除顺序的影响。

(2) 利用SQL*Plus删除员工表4,并立即释放表空间,并且不希望将其放置到回收站里,看能否成功。从原理上解释原因,同时记录外键约束表删除顺序的影响。

(二)视图的创建、维护及其使用方法(必做)

1.创建视图

(1)利用SQL*Plus建立可以添加工作为?CLERK?的雇员的视图vu_emp_clerk,包含列编号、姓名、工作,不允许添加其他工种的雇员信息。

测试:向视图插入如下一条记录,能否插入成功,并分析原因 SQL> insert into vu_emp_clerk (empno,ename,job) values (1234,'李四','SALESMAN');

(2) 建立视图vu_sal_view显示工资高于部门平均工资的雇员姓名、工资和部门号。能否向对该视图进行DML操作,并分析原因。 2.查看视图

(1) 查看视图定义

SQL>desc vu_emp_clerk;

SQL>select text from user_views

where view_name=upper(?vu_emp_clerk?); 3.删除视图

(1) 利用SQL*Plus删除“vu_emp_clerk”视图。

(三)索引的创建、维护及其使用方法(选做)

1.创建索引

(1) 利用SQL*Plus为员工表的员工姓名、员工性别、出生年月排序,以员工姓名升序、员工性别降序、出生年月降序排列,索引名为“emp_info_index”。 2.查看索引

(1) 利用SQL*Plus从DBA_INDEXES数据字典中查看“staff_info_index”索引的信息,并

31

巢湖学院

查看该索引列的顺序及状态。 3.删除索引

(1) 利用SQL*Plus将“emp_info_index”索引删除

(四)同义词、序列的创建、维护及其使用方法(选做)

1.创建同义词

(1)利用SQL*Plus创建医保卡表(CARD)的同义词,名为“ybk”。 2.查询同义词

(1) 利用SQL*Plus s查看同义词“ybk”。 3.删除同义词

(1) 利用SQL*Plus删除同义词“ybk”。 4.创建序列

(1)利用SQL*Plus创建序列,该序列最大值无限制,最小值为“1”,步长为“10”,序列名为“ygbx_seq2”。 5.查询序列

(1)利用SQL*Plus查看同义词“ygbx_seq2”。 6.修改序列

(1) 利用SQL*Plus修改序列“ygbx_seq2”,将该序列最大值设为“1000”。 7.删除序列

(1) 利用SQL*Plus删除序列“ygbx_seq2”

32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值