资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验四实验四 oracle 对象管理及使用对象管理及使用一、实验目的及要求一、实验目的及要求掌握 Oracle 的常用对象的操作方法。会使用常用对象解决一些实际问题。 二、实验主要内容二、实验主要内容 (1)表结构的建立、修改、查看、删除操作。 (2)索引的建立、修改、查看、删除操作。 (3)视图的建立、查询、修改、删除操作。 (4)同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的 操作是否一致。 (5)掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。 三、实验仪器设备三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。服务器成功安装 Oracle 11g 数据库服务器(企业版) ,客户机成功安装 Oracle 11g 客户端软件,网络服务配置正确,数据库和客户端正常工作。 四、实验步骤四、实验步骤 表的操作表的操作 1创建表结构创建表结构 利用命令行方式将下列各表建立到员工医疗保险系统数据库中。表结构如附录员工医 疗保险系统表 1-表 7 所示。 SQL /* =创建企业(business)表=*/ SQL create table business (2 bno char(10) primary key,3 bname char(50) not null,4 btype char(4) constraint CK_1 check(btype in(企业,事业,私有),5 baddress char(20),6 btel char(13)7 );表已创建。SQL /* =创建医院(hospital)表=*/ SQL create table hospital(2 hno char(5) primary key,3 hname char(40) not null,4 haddress char(60)5 );表已创建。SQL /* =创建医保卡(card)表=*/SQL create table card(2 cno char(15) primary key,3 ctype char(4) constraint CK_2 check(ctype in(企业,事业,灵活就业),4 cmoney number(7,2) not null5 );表已创建。SQL /* =创建员工(staff)表=*/ SQL create table staff(2 sno char(5) primary key,3 sname char(20) not null,4 ssex char(2) check (ssex in(男,女),5 sbirthday date,6 saddress char(20),7 stel char(15) unique,8 cno char(15) references card(cno),9 bno char(10) references business(bno)10 );表已创建。SQL /* =创建就诊表(see)=*/ SQL create table see (2 sno char(5) references staff(sno),3 hno char(5) references hospital(hno),4 sdate date,5 constraint S_PK primary key(sno,hno,sdate)6 );表已创建。SQL /* =创建消费表(consume)=*/ SQL /* =创建消费表(insurance)=*/ SQL create table insurance (2 idate date,3 cno char(15) references card(cno),4 imoney number(5,2) not null,5 bno char(10) references business(bno),6 constraint I_PK primary key (idate,cno)7 );表已创建。SQL /* =创建消费表(consume)=*/ SQL create table consume(2 cno char(15) references card(cno),3 hno char(5) references hospital(hno),4 csdate date not null,5 mname char(20),6 mnum int not null,7 csmoney number(7,2) not null,8 constraint C_PK primary key(cno,hno,csdate)9 );表已创建。2查看表结构查看表结构 利用 SQL*Plus 或 iSQL*Plus 从数据字典 DBA_TAB _COLUMNS 查看员工医疗保险系统所有表的字段信息。 SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPEFROM DBA_TAB_COLUMNSWHERE TABLE_NAME IN(BUSINESS,CARD,STAFF,CONSUME,HOSPITAL,SEE,INSURANCE);利用 SQL*Plus 或 iSQL*Plus 从数据字典 DBA_ CONSTRAINTS 查看员工医疗保险系 统所有表的约束信息。 SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAMEFROM DBA_CONSTRAINTSWHERE TABLE_NAME IN(BUSINESS,CARD,STAFF,CONSUME,HOSPITAL,SEE,INSURANCE);3删除表结构删除表结构 利用 SQL*Plus 或 iSQL*Plus 删除员工表 3,看能否成功。从原理上解释原因,同时记 录外键约束表删除顺序的影响。 DROP TABLE STAFF;索引操作索引操作 1.创建索引创建索引 利用 SQL*Plus 或 iSQL*Plus 为医院表的医院名称创建索引,并以降序排列,索引名为 “hospital_name_index”。 create index hospital_name_index on hospital(hname desc);2查看索引查看索引利用 SQL*Plus 或 iSQL*Plus 从 DBA_INDEXES 数据字典中查看员工医疗保险系统所 有索引的信息。 select index_name,index_type,table_namefrom DBA_INDEXESwhere table_name in(BUSINESS,CARD,SEE,STAFF,CONSUME,HOSPITAL,INSURANCE);3删除索引删除索引 利用 SQL*Plus 或 iSQL*Plus 将“hospital_name_index”索引删除。 DROP INDEX hospital_name_index;视图操作视图操作 1创建视图创建视图 利用 SQL*Plus 或 iSQL*Plus 为实现显示医保卡信息创建视图,该视图中包括医保卡信 息、医保卡所属人信息和所属人单位信息,视图名为“ygbx_card_view”。 create or replace view ygbx_card_view as select c.cno,c.ctype,c.cmoney,b.bno,b.bname,s.sno,s.sname,s.ssex,s.saddress,s.stelfrom card c,staff s,business bwhere c.cno = s.cno and s.bno = b.bno2查看视图查看视图 利用 SQL*Plus 或 iSQL*Plus 查看“ygbx_card_view”视图的信息。 select * from ygbx_card_view;3删除视图删除视图 利用 SQL*Plus 或 iSQL*Plus 删除“ygbx_card_view”视图。 drop view ygbx_card_view;同义词操作同义词操作 1创建同义词创建同义词 利用 SQL*Plus 或 iSQL*Plus 创建企业表同义词,名为“qyb”。 CREATE SYNONYM qyb FOR BUSINESS;2查询同义词查询同义词 利用 SQL*Plus 或 iSQL*Plus 查看同义词“qyb”。 SELECT * FROM QYB;3删除同义词删除同义词 利用 SQL*Plus 或 iSQL*Plus 删除同义词“qyb”。 DROP SYNONYM QYB;序列操作序列操作 1创建序列创建序列 利用 SQL*Plus 或 iSQL*Plus 创建序列,该序列最大值为“28000”,最小值为“60”,步 长为“1”,可循环,序列名为“ygbx_seq1”。 create sequence ygbx_seqlmaxvalue 28000minvalue 60increment by 1cycle;2查询序列查询序列 利用 SQL*Plus 或 iSQL*Plus 查看序列“ygbx_seq1”。 select ygbx_seql.currval from dual;3修改序列修改序列 利用 SQL*Plus 或 iSQL*Plus 修改序列“ygbx_seq1”,将该序列最大值设为“82000”,最 小值设为“100”,步长设为“5”。 alter sequence ygbx_seqlmaxvalue 82000minvalue 59increment by 5;4删除序列删除序列 利用 SQL*Plus 或 iSQL*Plus 删除序列“ygbx_seq1”。 drop sequence ygbx_seql;主要算法和程序清单SQL /* =创建企业(business)表=*/ SQL create table business (2 bno char(10) primary key,3 bname char(50) not null,4 btype char(4) constraint CK_1 check(btype in(企业,事业,私有),5 baddress char(20),6 btel char(13)7 );表已创建。SQL /* =创建医院(hospital)表=*/ SQL create table hospital(2 hno char(5) primary key,3 hname char(40) not null,4 haddress char(60)5 );表已创建。SQL /* =创建医保卡(card)表=*/ SQL create table card(2 cno char
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号