收藏 分销(赏)

实验二-数据库完整性技术.doc

上传人:仙人****88 文档编号:9456046 上传时间:2025-03-27 格式:DOC 页数:6 大小:47KB 下载积分:10 金币
下载 相关 举报
实验二-数据库完整性技术.doc_第1页
第1页 / 共6页
实验二-数据库完整性技术.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
数据库系统原理实验报告 实验二 数据库完整性技术 班级: 姓名: 学号: 任课教师: 实验教师: 上机时间: 【实验目的】 1、掌握完整性的概念; 2、熟悉Oracle的完整性技术。 3、了解Oracle的违反完整性处理措施。 【实验性质】 验证性实验 【实验学时】 2H 【实验内容】 写出完整、详尽的SQL语句,根据实验记录结果并总结。(空位不够请自行续页) 一、定义完整性 /*创建表s、p、j、spj*/ 定义s表; sno主码,sname非空、city缺省值 定义p表; pno主码,pname非空、color只能取红、蓝、绿 定义j表; jno主码, jname非空 定义spj表; (sno,pno,jno)主码,参照sno、pno、jno外码,qty介于0—1000 drop table s; drop table p; drop table j; drop table spj; create table s (sno char(2) constraint pk_s_sno primary key, sname varchar2(8) constraint nn_s_sname not null, status int, city varchar2(8) default('天津') ); create table p (pno char(2)constraint pk_p_pno primary key, pname varchar2(8) constraint nn_p_pname not null, color char(2) constraint c_p_color check(color in('红','蓝','绿')), weight int ); create table j (jno char(2) constraint pk_j_jno primary key, jname varchar2(8)constraint nn_j_jno not null, city varchar2(8) ); create table spj (sno char(2), pno char(2), jno char(2), qty int, constraint pk_spj primary key (sno,pno,jno), constraint fk_spj_sno foreign key(sno) references s(sno), constraint fk_spj_pno foreign key(pno) references p(pno), constraint fk_spj_jno foreign key(jno) references j(jno), constraint ck_spj_qty check (qty>0 and qty<1000) ); insert into s values ('s1','竟仪',20,'天津'); insert into s values ('s2','盛锡',10,'北京'); insert into s values ('s3','东方红',30,'北京'); insert into s values ('s5','为民',30,'上海'); insert into p values ('p1','螺母','红',12); insert into p values ('p2','螺栓','绿',17); insert into p values ('p3','螺丝刀','蓝',14); insert into p values ('p4','螺丝刀','蓝',14); insert into j values('j1','三建','北京'); insert into j values('j2','一汽','长春'); insert into j values('j3','弹簧厂','天津'); insert into j values('j4','造船厂','天津'); insert into j values('j5','机车厂','唐山'); insert into spj values('s1','p1','j4',700); insert into spj values('s1','p2','j2',100); insert into spj values('s2','p3','j1',400); insert into spj values('s2','p3','j2',200); insert into spj values('s3','p1','j1',200); insert into spj values('s3','p3','j1',200); 1、针对下列情况,如果出错的话,给出错误码,并说明原因;不出错的话,观察数据并说明理由。 (1)插入违反约束的元组,主码为null值 insert into s values (null,'竟仪',20,'天津'); ora-01400:主码不能为空值 (2)插入违反约束的元组,主码取重复值 insert into s values ('s1','竟仪',20,'天津'); ora-00001:违反主码唯一性原则,主码不能有重复的 (3)插入违反约束的元组,用户定义完整性(pname非空) insert into p values ('p4',null,'红',12); ora-01400:pname不能插入空值 (4)插入违反约束的元组,用户定义完整性(color只能取红、蓝、绿) insert into p values ('p5','螺母','黄',12); ora-02290:color只能取红、蓝、绿 (5)插入违反约束的元组,外码取null值 insert into spj values(null,'p1','j4',700); ora-01400:外码不能取空值 (6)插入违反约束的元组,外码取对应主码没有的值 insert into spj values('s4','p1','j4',700); ora-02291:主码不能取父表没有的值 (7)修改外码值,取对应主码已有的值 update spj set sno='s1'where sno='s2'; select * from spj (8)修改外码值,取对应主码没有的值 update spj set sno='s4'where sno='s1'; ora-02291:父表找不到的值 (9)删除被参照表未引用的主码值 select * from s delete from s where sno='s5'; (10)删除被参照表引用的主码值 delete from s where sno='s1'; ora-02292: (11)修改被参照表未引用的主码值 update p set pno='p2'where pno='p4'; ora-00001: (12)修改被参照表引用的主码值 update p set pno='p6'where pno='p3'; ora-02292:违反完整约束条件 2、将外码改成级联删除。 alter table spj drop constraint fk_spj_sno; alter table spj drop constraint fk_spj_pno; alter table spj drop constraint fk_spj_jno; alter table spj add constraint fk_spj_sno foreign key(sno) references s(sno) on delete cascade; alter table spj add constraint fk_spj_pno foreign key(pno) references p(pno) on delete cascade; alter table spj add constraint fk_spj_jno foreign key(jno) references j(jno) on delete cascade; 3、在2的基础上,插入数据。针对下列情况,如果出错的话,给出错误码,并说明原因;不出错的话,观察数据并说明理由。 (1)删除被参照表未引用的主码值 delete from p where pno='p4'; (2)删除被参照表引用的主码值 delete from j where jno='j4'; 【实验总结】 请根据实验内容谈谈你对本次实验的收获、感想,或提出你对实验内容的建议等等。 批改教师评语: 实验报告成绩: 批改教师签字 批改时间: 6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服