数据库上机练习3—视图

一、视图定义

视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。

视图就像是在基本表上开了一个窗口,你可通过这个窗口查看基本表中的数据,你也可以在这个窗口上对数据进行增、删、改、查,且这些操作都是在视图上进行的不对基本表造成任何影响。

 数据库上机练习3—视图_第1张图片

二、视图作用

视图的作用:

1、简化用户的操作

2、使用户能以多种角度看待同一问题

3、对重构数据库提供了一定程度的逻辑独立性

4、对机密数据提供安全保护

5、更加清晰的表达查询

三、操作

以之前建好的学生表为例:

(3条消息) 数据库使用练习2——学生管理系统示例_代码骑士的博客-CSDN博客

打开学生信息系统数据库:

数据库上机练习3—视图_第2张图片

这是学生表的基本信息:

数据库上机练习3—视图_第3张图片

 准备好之后,开始创建视图。

(1)创建一张普通视图(不带任何约束条件)

数据库上机练习3—视图_第4张图片

 可以看出,建立视图的语句非常简单,create+view+视图名

as+子查询(就是视图窗口显示的范围)

浅查一下,检查信息无误。

数据库上机练习3—视图_第5张图片

(2)如果想要对该视图进行插入、修改和删除等操作时,为了保护其他数据不被误处理,就需要给视图加上限定条件:WITH CHECK OPTION

这样再对视图进行操作时,数据库管理系统会自动执行这条限制条件。

数据库上机练习3—视图_第6张图片

 (3)创建一张行列子集视图

        *行列子集视图是带有基本表主码的视图。

        例子:建立CS系中选修一号课的学生视图(学号、姓名、成绩)

数据库上机练习3—视图_第7张图片

浅查一下:

 数据库上机练习3—视图_第8张图片

 *因为SC_s1的属性列中包含了Student表与SC表的同名列Sno,所以必须在视图名后面说明各个属性列名。

不加的话,

数据库上机练习3—视图_第9张图片

暂时没发现什么影响…… 

 数据库上机练习3—视图_第10张图片

 (4)建立图中图(视图上面再建视图)

在CS_s2视图上建立分数大于等于90的学生视图

数据库上机练习3—视图_第11张图片

(5)带表达式的视图(表达式就是对基本表进行数据处理的一个式子,通常为一个函数)

         这种视图会有一个基本表中没有的属性列,就是通过表达式计算得出的属性列,我们也称作这类属性列为派生属性列。 

数据库上机练习3—视图_第12张图片

红:表达式

绿:派生列

输出学生的出生年:

数据库上机练习3—视图_第13张图片

 (6)分组视图(GROUP BY)

将学生的学号和平均成绩定义为一个视图

数据库上机练习3—视图_第14张图片

 输出:

数据库上机练习3—视图_第15张图片

 (7)删除视图

删除单个视图:DROP VIEW + 视图名

 删除单个视图及导出视图:DROP VIEW + 视图名 + [CASCADE]

(8)查询(与表类似不做过多解释)

(9)更新(通过视图进行插入、删除、修改)

视图是不实际存储数据的虚表,因此对视图的更新最终要转为对基本表的更新。

        改:

        数据库上机练习3—视图_第16张图片

虽然提示成功了,但是并未做出修改,应该对作用对象做出转换

修改基本表:

数据库上机练习3—视图_第17张图片

数据库上机练习3—视图_第18张图片

         插:

数据库上机练习3—视图_第19张图片

        删:

 数据库上机练习3—视图_第20张图片

 (*视图就像是水族馆的玻璃,隔着玻璃怎么也摸不到里面的鱼,只有深入水底,才能与鱼共舞)

四、作业

        (1)with check option是视图创建语句的一个可选项,请设计实验探索该选项的作用。实验后用一段话描述其作用。

       

 

        答:在视图上进行增、删、改数据时,关系数据库管理系统会检查视图定义中的条件,不满足条件则拒绝执行指令。

        (2)创建员工视图1,包括员工编号,员工工资,员工职位3个字段。并验证该视图是否可插入(insert)数据及更新(update)数据,并截图。

        创建:

数据库上机练习3—视图_第21张图片

数据库上机练习3—视图_第22张图片  

         插入:

  数据库上机练习3—视图_第23张图片

可以。 

         修改:

数据库上机练习3—视图_第24张图片

可以。 

        (3)创建部门平均工资视图,该视图包括部门编号,该部门平均工资2个字段。并验证该视图是否可插入(insert)数据及更新(update)数据,并截图。

        1、转换数据库并创建视图 

数据库上机练习3—视图_第25张图片

         看一眼:

数据库上机练习3—视图_第26张图片

        2、插入

数据库上机练习3—视图_第27张图片

不能插入,因为平均薪资在基本表中无法直接插入。 

        3、更新 

无法更新, 同上理,系统无法修改各部门平均薪水。

你可能感兴趣的:(数据库,sql)