实验五视图与完整性约束

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五视图与完整性约束

一、实验目的

1、掌握视图的创建及使用。

2、掌握关系数据库的完整性约束机制。

二、实验预习

1、视图定义语句格式:

Create View<视图名>[(<列名>[,<列名>………)]

As <子查询>

[Where check option]

2、关系数据库具有哪些完整性约束?

域完整性

实体完整性

参照完整性

三、实验内容及要求

1、建立视图

(1)建立视图IS_STUDENT,视图中包含信息系全体学生的基本信息。(要求限制更新)

CREATE VIEW IS_STUDENT

AS

SELECT *

From student

WHERE Sdept='信息系';

(2)建立视图CJ_STUDENT,视图中包含所有成绩不及格的学生的学号,姓名,课程名,成绩。

CREATE VIEW CJ_STUDENT

AS

SELECT Student.Sno,Sname,Cname,Grade

FROM STUDENT,Course,SC

WHERE Grade<60 and Student.Sno=SC.Sno and o=o;

(3)建立视图AVG_CJ,视图包括学生的学号以及他们的平均成绩,按成绩降序排列。

Create view AVG_CJ(Sno,Gavg)

AS

SELECT Sno,AVG(Grade)

FROM SC

Order by Gavg DESC;

(4)根据视图IS_STUDENT,修改该视图中年龄都增加1。观察基本表Student中相应的哪些数据发生了变化。

UPDATE IS_STUDENT

SET Sage=Sage+1;

(5)在视图IS_STUDENT中插入新的记录,学号为9531103,姓名为张玉,女,21岁,计算机系。(是否能执行?若不行,为什么?)

INSERT INTO IS_STUDENT

VALUES('9531103','张玉','女',21,'')

(6)根据视图CJ_STUDENT创建视图CJ_TJ,包含课程名,不及格人数,不及格人姓名列表,按照不及格人数降序排列。

2、实体完整性约束

(1)在Student表中插入一条数据:

插入是否成功?为什么?

INSERT

INTO student(sno,sname,sage,sdept)

VALUES ('9512101','王红',20,'外语系');

(2)在Sc表中插入一条数据:

插入是否成功?为什么?

3、参照完整性约束

(1)修改Student表中记录,将学号9512101改为9512103,更改是否成功?若不成功请说出原因。

update student set sno='9512103' where sno='9512101'

(2)修改SC表中记录,将学号为9512101的记录均改为学号9512109,是否更改成功?

若不成功请说出原因。

update sc set sno='9512109' where sno='9512101'

(3)设置SC表的参照完整性为更新和删除时均为级联。

方法1:在表设计器中修改;

方法2:修改表结构,设置更新与删除参照完整性规则均为级联。请写出SQL语句。

(4)修改Student表学号9512101为9512109,观察SC表中相应记录是否更新?

update student set sno='9512109' where sno='9512101'

(5)在Course表中删除课程代号为C01的记录,观察SC表中选课C01的记录是否删除?

delete from course where cno='C01'

四、实验小结

简述设计视图的作用。

五、评阅成绩

相关文档
最新文档