文档详情

实验五数据完整性实验.doc

发布:2017-06-20约4.11千字共6页下载文档
文本预览下载声明
实验五:数据完整性实验 一、实验目的: 掌握使用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
显示全部
相似文档