- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五数据完整性实验
实验五:数据完整性实验
一、实验目的:
掌握使用SQL中的PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字是现实体完整性、参照完整性及用户定义完整性约束定义。
二、实验步骤:
(一)验证分析部分
1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性。
在查询分析器窗体下键入如下命令:
CREATE TABLE Student(
sno CHAR(5) NOT NULL UNIQUE,
sname CHAR(8),
ssex CHAR(1),
sage INT,
sdept CHAR(20),
CONSTRAINT PK_Student PRIMARY KEY(sno));
UPDATE Student SET sno=’ ‘ WHERE sdept=’CS’;
UPDATE Student SET sno=’200215121 ‘ WHERE sname=’王敏’;
运行并观察结果。
2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证实体完整性。
在查询分析器窗体下键入如下命令:
(1)先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:
alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)
REFERENCES Student(sno)
ON update CASCADE;
然后执行以下语句
Update Student SET sno=’200215128 ‘ WHERE sno=’200215121’;
(2) 先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:
alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)
REFERENCES Student(sno)
ON delete CASCADE;
然后执行以下语句
delete from student WHERE sno=’200215122’;
运行并观察结果。
3、利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。
CREATE TABLE Student(
sno CHAR(5) ,
sname CHAR(8) CONSTRAINT U1 UNIQUE,
ssex CHAR(1),
sage INT CONSTRAINT U2 CHECK FOR sage=28,
sdept CHAR(20),
CONSTRAINT PK_Student PRIMARY KEY(sno))
执行以下SQL语句
Insert into values(‘2002101’,’li’,’女’,89,’DS’)
运行并观察结果。思考:如果要求sdept输入内容只能为字母该如何约束?
(二)设计分析部分
在Student数据库中,完成以下完整性约束设置。
1、设置Student表中Ssex的取值只能是‘男’或‘女’;
2、设置Student表中Sdept的取值默认为‘CS’;
3、删除操作测试
(1)设置Course表和 SC表之间的关系,实现cascade delete related records。
(2)删除Course 表中记录,查看SC表中数据的变化(SC表中Cno有与Course表中Cno对应的记录删除和无对应记录的删除都要测试),有什么结果,为什么?
4. 修改操作测试
(1)在SC表中,将课程号为3的改为33,都有什么结果?为什么?
(2)将Course表和sc表的课程号为3的都改为33,请用完整性约束实现?
5. 插入数据测试
(1)在STUDENT表中插入一条新纪录:
95006 李三 男 21 IS
(2)在SC表中插入一条新纪录:
95008 3 80
插入执行后都有什么结果?为什么?如何完成上述操作?
拓展练习
(1)创建表worker(number,name,sex,sage,department),并自定义2个约束U1和U2,其中U1规定name字段唯一,U2规定sage字段的上限是28即年龄最大28岁。
(2)在worker表中插入一条合法记录。
(3)演示插入违反U2约束的例子,U2规定元组的sage属性的值必须=28。
(4)去除U2约束。
(5)重新插入(3)中想要插入的数据,验证是否插入成功。
三、实验学时
2学时
四、实验设备与环境
Windows 2003平台 + SQL
文档评论(0)