数据库——视图

1.定义  
视图是从一个或多个基本表(或视图)中导出的表,是一张虚表。
2.概念

▶视图是查看数据库表中数据的一种方法;

▶视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力;

▶视图只是一种逻辑对象,并不是物理对象,因为视图不占物理存储空间;

▶ 在视图中被查询的表称为视图的基表;

▶视图的内容包括:基表的列的子集或者行的子集;两个或者多个基表的联合;两个或者多个基表的连接;基表的统计汇总;另外一个视图的子集;视图和基表的混合。

3.视图作用(优点)

▶集中用户使用的数据;

▶掩码数据库的复杂性,视图把数据库设计的复杂性与用户屏蔽分开;

▶简化用户权限的管理;

▶为向其他应用程序输出而重新组织数据。

4.视图的使用范围

▶着重于特定数据:视图使用户能够着重于他们所感兴趣的特定数据和所负责的特定任务。不必要的数据或敏感数据可以不出现在视图中。

▶简化数据操作:视图可以简化用户处理数据的方式。可以将常用的连接、投影、UNION查询和SELECT查询定义为视图,用户不必每次对该数据执行附加操作时指定所有条件和条件限定。

▶自定义数据:视图允许用户以不同的方式查看数据,即使在他们同时使用相同的查询时也是如此。

5.视图定义

SQL语言用CREATE VIEW 命令创立视图,其一般格式为:

CREATE VIEW<视图名>[(<列名>[,<列名>]...)]

AS<子查询>

[WITH CHECK OPTION];

▶子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY 子语句和DISTINCT短语。

▶WITH CHECK OPTION 短语表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。
▶组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图中的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。
▶如下情况必须指定组成视图的所有列名:
a.某个目标列不是单纯的属性名,而是聚集函数或列表达式。
b.多表连接是选出了几个同名的列作为视图的字段。
c.需要在视图中为某个列用新的更合适的名字。
 例1:建立计算机系学生的视图

CREATE VIEW cs_computer

AS

SELECT sno,sname,sage

FROM student

WHERE sdept='CS';

例2:建立计算机系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。

 

CREATE VIEW cs_computer

AS

SELECT sno,sname,sage

FROM student

WHERE sdept='CS'

WITH CHECK OPTION

 例3:建立计算机系成绩在90分以上的学生视图。

CREATE VIEW cs_s1(sno,sname,cgrade)

AS

SELECT student.sno,sname,cgrade

FROM student,sc

WHERE sdept='CS' AND student.sno=sc.sno AND cgrade>=90;

 
 
 
 
 
 
 
posted @ 2015-07-23 13:10  LiuZhenYou  阅读(359)  评论(0编辑  收藏  举报