实验四oracle对象管理及使用Word格式文档下载.docx
- 文档编号:18811963
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:17
- 大小:302.18KB
实验四oracle对象管理及使用Word格式文档下载.docx
《实验四oracle对象管理及使用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验四oracle对象管理及使用Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
利用命令行方式将下列各表建立到员工医疗保险系统数据库中。
表结构如附录员工医疗保险系统表1-表7所示。
SQL>
/*======创建企业(business)表======*/
createtablebusiness(
2bnochar(10)primarykey,
3bnamechar(50)notnull,
4btypechar(4)constraintCK_1check(btypein('
企业'
'
事业'
私有'
)),
5baddresschar(20),
6btelchar(13)
7);
表已创建。
/*======创建医院(hospital)表======*/
createtablehospital(
2hnochar(5)primarykey,
3hnamechar(40)notnull,
4haddresschar(60)
5);
/*======创建医保卡(card)表======*/
createtablecard(
2cnochar(15)primarykey,
3ctypechar(4)constraintCK_2check(ctypein('
灵活就业'
4cmoneynumber(7,2)notnull
/*======创建员工(staff)表======*/
createtablestaff(
2snochar(5)primarykey,
3snamechar(20)notnull,
4ssexchar
(2)check(ssexin('
男'
女'
5sbirthdaydate,
6saddresschar(20),
7stelchar(15)unique,
8cnochar(15)referencescard(cno),
9bnochar(10)referencesbusiness(bno)
10);
/*======创建就诊表(see)======*/
createtablesee(
2snochar(5)referencesstaff(sno),
3hnochar(5)referenceshospital(hno),
4sdatedate,
5constraintS_PKprimarykey(sno,hno,sdate)
6);
/*======创建消费表(consume)======*/
/*======创建消费表(insurance)======*/
createtableinsurance(
2idatedate,
3cnochar(15)referencescard(cno),
4imoneynumber(5,2)notnull,
5bnochar(10)referencesbusiness(bno),
6constraintI_PKprimarykey(idate,cno)
createtableconsume(
2cnochar(15)referencescard(cno),
4csdatedatenotnull,
5mnamechar(20),
6mnumintnotnull,
7csmoneynumber(7,2)notnull,
8constraintC_PKprimarykey(cno,hno,csdate)
9);
2.查看表结构
利用SQL*Plus或iSQL*Plus从数据字典DBA_TAB_COLUMNS查看员工医疗保险系统所有表的字段信息。
SELECTTABLE_NAME,COLUMN_NAME,DATA_TYPE
FROMDBA_TAB_COLUMNS
WHERETABLE_NAMEIN('
BUSINESS'
CARD'
STAFF'
CONSUME'
HOSPITAL'
SEE'
INSURANCE'
);
利用SQL*Plus或iSQL*Plus从数据字典DBA_CONSTRAINTS查看员工医疗保险系统所有表的约束信息。
SELECTCONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME
FROMDBA_CONSTRAINTS
3.删除表结构
利用SQL*Plus或iSQL*Plus删除员工表3,看能否成功。
从原理上解释原因,同时记录外键约束表删除顺序的影响。
DROPTABLESTAFF;
索引操作
1.创建索引
利用SQL*Plus或iSQL*Plus为医院表的医院名称创建索引,并以降序排列,索引名为“hospital_name_index”。
createindexhospital_name_indexonhospital(hnamedesc);
2.查看索引
利用SQL*Plus或iSQL*Plus从DBA_INDEXES数据字典中查看员工医疗保险系统所有索引的信息。
selectindex_name,index_type,table_name
fromDBA_INDEXES
wheretable_namein('
3.删除索引
利用SQL*Plus或iSQL*Plus将“hospital_name_index”索引删除。
DROPINDEXhospital_name_index;
视图操作
1.创建视图
利用SQL*Plus或iSQL*Plus为实现显示医保卡信息创建视图,该视图中包括医保卡信息、医保卡所属人信息和所属人单位信息,视图名为“ygbx_card_view”。
createorreplaceviewygbx_card_viewasselecto,c.ctype,c.cmoney,b.bno,b.bname,s.sno,s.sname,s.ssex,s.saddress,s.stel
fromcardc,staffs,businessb
whereo=oands.bno=b.bno
2.查看视图
利用SQL*Plus或iSQL*Plus查看“ygbx_card_view”视图的信息。
select*fromygbx_card_view;
3.删除视图
利用SQL*Plus或iSQL*Plus删除“ygbx_card_view”视图。
dropviewygbx_card_view;
同义词操作
1.创建同义词
利用SQL*Plus或iSQL*Plus创建企业表同义词,名为“qyb”。
CREATESYNONYMqybFORBUSINESS;
2.查询同义词
利用SQL*Plus或iSQL*Plus查看同义词“qyb”。
SELECT*FROMQYB;
3.删除同义词
利用SQL*Plus或iSQL*Plus删除同义词“qyb”。
DROPSYNONYMQYB;
序列操作
1.创建序列
利用SQL*Plus或iSQL*Plus创建序列,该序列最大值为“28000”,最小值为“60”,步长为“1”,可循环,序列名为“ygbx_seq1”。
createsequenceygbx_seql
maxvalue28000
minvalue60
incrementby1
cycle;
2.查询序列
利用SQL*Plus或iSQL*Plus查看序列“ygbx_seq1”。
selectygbx_seql.currvalfromdual;
3.修改序列
利用SQL*Plus或iSQL*Plus修改序列“ygbx_seq1”,将该序列最大值设为“82000”,最小值设为“100”,步长设为“5”。
altersequenceygbx_seql
maxvalue82000
minvalue59
incrementby5;
4.删除序列
利用SQL*Plus或iSQL*Plus删除序列“ygbx_seq1”。
dropsequenceygbx_seql;
主要算法和程序清单
dropsequenceygbx_seql
疑难小结:
本次实验中只要多锻炼,记住语法就太大问题,需要注意的是在建表的时候主键/外键的相互引用,另外关键字必须记清楚,这就要求要经常锻炼。
附录:
员工医疗保险系统表
表1企业(business)表结构
表2医院(hospital)表结构
表3医保卡(card)表结构
表4员工(staff)表结构
表5就诊表(see)结构
表6消费(consume)表结构
表7医保(insurance)表结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 oracle 对象 管理 使用