一、实验目的及要求
掌握Oracle常用对象的操作方法。用常用对象解决一些实际问题。
二、实验的主要内容
(1) 建立、修改、检查和删除表结构。 (2) 索引的建立、修改、删除索引。 (3) 构建、查询、修改、删除视图。 (4) 建立、查询、修改和删除同义词,比较同义词的操作是否与原始数据库对象一致。 (5) 利用序列将数据插入数据库表,掌握序列的建立、查询、修改和删除。
三、实验仪器设备
在局域网环境下,有一台服务器和几台客户机。服务器安装成功Oracle 12c客户机成功安装数据库服务器(企业版)Oracle 12c客户端软件,网络服务配置正确,数据库和客户端正常工作。
四、实验步骤
1. 新数据库连接
2. 创建表结构
在员工医疗保险系统数据库中建立以下表格
(1)建表 business
CREATE TABLE business ("BNO" VARCHAR2(10 BYTE) primary key, "BNAME" VARCHAR2(50 BYTE) NOT NULL ENABLE, "BTYPE" VARCHAR2(4 BYTE), "BADDRESS" VARCHAR2(20 BYTE), "BTEL" VARCHAR2(13 BYTE)); alter table business add constraint check_btype check(btype in (企业,事业,私有);
(2)建表 hospital
CREATE TABLE hospital ("hno" VARCHAR2(5 BYTE) primary key, "hname" VARCHAR2(40 BYTE) NOT NULL, "haddress" VARCHAR2(60 BYTE));
(3)建表 card
CREATE TABLE card (cno VARCHAR(15) primary key, ctype VARCHAR(8), cmoney NUMBER(7,2) NOT NULL); alter table card add constraint check_ctype check(ctype in (企业,事业,灵活就业);
(4)建表 staff
(5)建表 see
CREATE TABLE see (sno VARCHAR2(5) references staff(sno) on delete cascade, hno VARCHAR2(5) references hospital(hno), sdate date, primary key(sno,hno,sdate));
(6)建表 consume
CREATE TABLE consume (cno VARCHAR2(15) references card(cno) on delete cascade, hno VARCHAR2(5) references hospital(hno), csdate date not null, mname varchar2(20), mnum int not null, csmoney number(7,2) not null, primary key(cno,hno,csdate));
(7)建表 insurance
CREATE TABLE insurance (idate date, cno VARCHAR(15) references card(cno), imoney number(5,2) not null, bno VARCHAR(10) references business(bno), primary key(idate,cno));
3. 查看表结构
(1)利用SQL*Plus或PL/SQL Developer从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表格的字段信息。
(2)利用SQL*Plus或PL/SQL Developer从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表格的约束信息。
4. 修改表结构
(1) 利用SQL*Plus或PL/SQL Developer将表“staff_sql新命名为staff_sql0”。
(2) 使用企业管理器staff_sql0”表添加“age INT使用字段DESC命令查看“staff_sql0表的字段信息。
(3) 利用SQL*Plus或PL/SQL Developer为“staff_sql0”表添加“salary NUMBER(五、二)salary_add NUMBER(3,1)使用两个字段DESC命令查看“staff_sql0表的字段信息。
(4) 利用SQL*Plus或PL/SQL Developer向“staff_sql0”表添加“sname从数据字典来看,字段是唯一的约束DBA_CONSTRAINTS查看“staff_sql0表的约束信息。
(5) 利用SQL*Plus或PL/SQL Developer删除“staff_sql0”表上“sname从数据字典来看,字段是唯一的约束DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
(6) 利用企业管理器staff_sql0”表删除“age使用字段DESC命令查看“staff_sql0表的字段信息。
(7) 利用SQL*Plus或PL/SQL Developer从“staff_sql0”表删除“salary”、“salary_add使用两个字段DESC命令查看“staff_sql0表的字段信息。
(8) 利用SQL*Plus或PL/SQL Developer将“staff_sql0”表“sname将字段长度修改为30DESC命令查看“staff_sql0表的字段信息。
5. 删除表结构
(1) 利用SQL*Plus或PL/SQL Developer删除员工表3,看看是否成功。原则上说明原因,并记录外键约束表删除顺序的影响。 /p>
没有数据 不足以引发外键冲突,可以删除 然而插入数据,直接删除时若引发外键冲突,就无法删除了 staff表外键没有设置级联删除 索引、视图、同义词及序列操作
6. 创建索引
(1) 利用企业管理器为医院表的医院名称创建索引,并以降序排列,索引名为“hospital_name_index”。
(2) 利用SQL*Plus或PL/SQL Developer为员工表的员工姓名、员工性别、出生年月排序,以员工姓名升序、员工性别降序、出生年月降序排列,索引名为“staff_info_index”。
7. 查看索引
(1) 利用SQL*Plus或PL/SQL Developer从DBA_INDEXES数据字典中查看员工医疗保险系统所有索引的信息。
(2) 利用SQL*Plus或PL/SQL Developer从DBA_INDEXES数据字典中查看“staff_info_index”索引的信息,并查看该索引列的顺序及状态。
8. 删除索引
(1) 利用企业管理器删除“hospital_name_index”索引。
(2) 利用SQL*Plus或PL/SQL Developer将“staff_info_index”索引删除。
9. 创建视图
(1) 利用企业管理器为实现显示医保卡信息创建视图,该视图中包括医保卡信息、医保卡所属人信息和所属人单位信息,视图名为“ygbx_card_view”。
(2) 利用SQL*Plus或PL/SQL Developer为实现员工持医保卡到医院消费的功能创建视图,该视图中包括员工的信息、医保卡信息、医保信息和消费等信息,视图名为“consume_view”。
(3) 利用SQL*Plus或PL/SQL Developer为企业医保缴费信息功能创建视图,该视图中包括医保缴费的企业信息,医保卡信息和企业医保缴费费用等信息,视图名为“insurnce_view”。
(4) 利用SQL*Plus或PL/SQL Developer为企业表创建视图,视图名为“business_view”。
10. 查看视图
(1) 利用企业管理器查看“consume_view”视图的信息。
(2) 利用SQL*Plus或PL/SQL Developer查看“card_view”视图的子查询语句。
(2) 利用SQL*Plus或PL/SQL Developer显示“insurance_view”视图的信息。
11. 视图数据的更新
(1) 利用SQL*Plus或PL/SQL Developer向“business_view”插入一个记录,企业编号为“B1997010287”,企业名称为“格林制药”,企业类型为“企业”,企业地址为“鸭绿江街98号”,联系电话为“84692315”。
(2) 利用SQL*Plus或PL/SQL Developer查看“business”表是否有变化。
12. 删除视图
(1) 利用企业管理器删除“business_view”视图。
(2) 利用企业管理器删除“card_view”视图。
(3) 利用SQLPlus或PL/SQL Developer删除“consume_view”视图。
(4) 利用SQL Plus或PL/SQL Developer删除“insurnce_view”视图。
13. 创建同义词
(1) 利用SQL*Plus或PL/SQL Developer创建医保卡表的同义词,名为“ybk”。
14. 查询同义词
(1) 利用SQL*Plus或PL/SQL Developer查看同义词“ybk”。
15. 删除同义词
(1) 利用企业管理器删除同义词“qyb”。 (2) 利用SQL*Plus或PL/SQL Developer删除同义词“ybk”。
16. 创建序列
(1) 利用SQL*Plus或PL/SQL Developer创建序列,该序列最大值无限制,最小值为“1”,步长为“10”,序列名为“ygbx_seq2”。
17. 查询序列
(1) 利用SQL*Plus或PL/SQL Developer查看同义词“ygbx_seq2”。
18. 修改序列
利用SQL*Plus或PL/SQL Developer修改序列“ygbx_seq2”,将该序列最大值设为“1000”。
19. 删除序列
(1) 利用SQL*Plus或PL/SQL Developer删除序列“ygbx_seq2”。