您的当前位置:首页正文

15春数据库实验3 视图操作(4学时)

2023-04-10 来源:好走旅游网
江苏师范大学

实验三 视图操作(4学时)

【实验目的】

1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。 2. 了解数据库安全控制的机制,以及自主存取控制方法。 【实验要求】

1.掌握创建、修改视图的SQL语句的用法。

2.掌握使用企业管管理器创建、修改视图的方法。 3.掌握查看视图的系统存储过程的用法。 4.掌握视图的使用方法。

5.掌握SQL有关用户、角色及操作权限的管理方法。 【实验内容】 (一)定义视图

以Student 、SC、Course表为基础完成以下视图定义。

1.定义计算机系学生基本情况视图V_Computer。

2.将Student、Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。

3.将各系学生人数,平均年龄定义为视图V_NUM_AVG。

4.定义一个反映学生出生年份的视图V_YEAR。

5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G。 6.将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G。 (二)使用视图

1. 查询以上所建的视图结果。

2. 查询平均成绩为90分以上的学生学号、姓名和成绩。

3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。 4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。

(三)修改视图

1. 通过视图V_Computer,分别将学号为“04261001”和“04261002”的学生姓名更改为“S1_MM”,”S2_MM” 并查询结果。

2. 通过视图V_Computer,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果。

3. 通过视图V_Computer,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果。 4. 通过视图V_Computer,删除学号为“S12”和“S13”的学生信息,并查询结果。

5. 通过视图V_S_C_G,将学号为“04261001”的姓名改为“S1_MMM”,是否可以实现?并说明原因。

6. 通过视图V_AVG_S_G,将学号为“04261001”的平均成绩改为90分,是否可以实现?并说明原因。

【实验步骤】 一、视图操作 (一)定义视图

 定义计算机系学生基本情况视图V_Computer。 CREATE VIEW V_COMPUTER AS

1

江苏师范大学

SELECT *

FROM student

WHERE sdept='计算机'

 将Student、Course和SC表中学生的学号、姓名、课程号、课程名,成绩定义为

视图V_S_C_G。 CREATE VIEW V_S_C_G AS

SELECT student.sno,student.sname,course.cno,course.cname,sc.grade FROM student,course,sc

WHERE student.sno=sc.sno and sc.cno=course.cno 参考上例,自行完成实验内容中其他视图的定义。

(二)使用视图

 查询以上所建的视图结果。

Select * from V_Computer

 查询平均成绩为90分以上的学生学号、姓名和成绩。

Select sno,sname, avgrade from V_AVG_S_G where avgrade>=90

注:此例中出现的属性名应与创建视图V_AVG_S_G的属性名一致。参考上例,自行完成实验内容中其他视图的定义。 (三)修改视图

 通过视图V_Computer,分别将学号为“04261001”和“04261002”学生姓名更改为

“S1_MM”,”S2_MM” 并查询结果。 update V_Computer set sname='S1_MM'

WHERE sno like '04261001' GO

 通过视图V_Computer,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果。

INSERT INTO V_Computer Values ('S12','YAN XI',19,'IS') Go

Select * from V_Computer  通过视图V_Computer,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果。

INSERT INTO V_Computer Values ('S13','YAN XI',19,'MA') go

Select * from V_Computer

 通过视图V_Computer,删除学号为“S12”和“S3”的学生信息,并查询结果.

delete from V_Computer WHERE sno='S12' or sno='S13' 请根据上述例子,可参考以下所给的操作要求自行设计不同情况的DML语句(不少于

20条语句),并进行验证。

(1)建立“计91”班学生的视图; (2)建立“计911”班学生的视图,并要求进行修改与插入时,仍须保证该视图只有“计91”班学生; (3)建立“计91”班选修了“C01”课程的学生的视图,定义视图名为“v_info_C01_student1”; (4)建立“计91”班选修了“C01”课程且成绩在90分以上的学生的视图,定义视图名为

2

江苏师范大学

“info_c01_student2”;

(5)定义一个反映学生年龄的视图,定义视图名为“v_birth_student”;

(6)将学生表中所有女生记录定义为一个视图,视图名为“v_female_student”; (7)将学生的学号及其平均成绩定义为一个视图,视图名为“v_average_student”; (8)删除表student后,重新建student表,再建视图“V_CS_student1”,结果如何? (9)在“计91”班学生视图中找出年龄小于22岁(现在的年龄)的学生; (10)利用视图查询“计91”班选修了“C01”课程的学生; (11)通过(53)中的“计91”班视图修改某个学生的名字; (12)通过(54)中的“计91”班视图,插入一个新学生记录。 (13)通过(54)中的“计91”班视图,删除一个学生记录。 【思考题】

1. 为什么要建立视图?视图和基本表有什么不同?

3

因篇幅问题不能全部显示,请点此查看更多更全内容