实验五视图与完整性约束
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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'
四、实验小结
简述设计视图的作用。
五、评阅成绩