实验05 视图的创建和使用题目和答案

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

实验五视图的创建和使用

【实验目的】

1.利用企业管理器建立视图;

2.利用视图进行查询和修改记录;

【实验内容】

①利用查询分析器和样本(实验一)中的三个表:STUDENTS、SC及C表

建立视图V_grobal,视图V_grobal包含的字段为:

s.sno、、o、ame 、grade

创建:

CREATE VIEW V_grobal

AS

SELECT STUDENT.SNO,STUDENT.SNAME,O,AME,GRADE

FROM STUDENT,SC,C

WHERE STUDENT.SNO=SC.SNO AND O=O

②创建一个名为V_student的视图。该视图仅查看student表中”0908032”班

的学生信息。并强制通过视图修改和添加的数据满足where条件。(with check option)

CREATE VIEW V_student

AS

SELECT*

FROM STUDENT

WHERE SNO LIKE'0908032%'

WITH CHECK OPTION

1)通过视图修改该班的某一学生的姓名。能否成功?

UPDATE V_student

SET AGE='100'

WHERE SNO='090803201'

能成功

2)通过视图修改该班的某一学生的学号改为”090803155”,成功与否?

得到什么结论?

UPDATE v_student

SET SNO='090803155'

WHERE SNO='090803201'

显示不成功:

结论:通过使用WITH CHECK OPTION 子句,用户可以强制要求针对视图中数据所发生的所有修改,都必须符合视图SELECT语句中WHERE 子句所定义的查询条件,题2学号修改为‘090803155’,不满足WHERE 条件‘sno like '0908032%'’,所以修改不成功。

③创建一个名为V_Sgrade的视图,该视图能显示各学生的学号,姓名,平

均成绩

CREATE VIEW V_Sgrade

AS

SELECT SC.SNO,SNAME,A VG(GRADE) A VGG

FROM STUDENT,SC

WHERE STUDENT.SNO=SC.SNO

GROUP BY SC.SNO,SNAME

问:能不能将某一个学生的平均成绩改成90,为什么?

UPDATE V_Sgrade

SET A VGG='90'

WHERE SNO='090803101'

结果,不能修改

因为:

字段来自聚合函数avg,此视图不允许更新

④建立1班学生的视图,在1班学生的视图中找出年龄小于22岁的学生。CREATE VIEW STUDENT_1

AS

SELECT*

FROM STUDENT

WHERE cls='1'

查询:

SELECT*

FROM STUDENT_1

WHERE AGE<22

⑤建立一反映各学生总成绩的视图S_ZCJ,视图包括学号、姓名、总成绩

三列。

CREATE VIEW S_ZCJ

AS

SELECT SC.SNO,SNAME,SUM(GRADE) SUMG

FROM STUDENT,SC

WHERE STUDENT.SNO=SC.SNO

GROUP BY SC.SNO,SNAME

【实验步骤】(要求自己填写详细的实验步骤)【实验体会及存在问题】(要求自己填写)

相关文档
最新文档