一、概述
在SQL中,视图是从若干基本表和其他视图构造出来的虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据集形式存在。当我们创建一个视图时,只是把其视图的定义存放在数据字典中,在用户使用时才去求对应的数据。
二、视图的作用
1、简单性。看到的就是需要的。视图不后的操作每次指定全部的条件仅可以简化用户对数据的理解,也可以简化他们的操作。哪些被经常使用的查询可以被定义为视图,从 而使得用户不必为以后的操作每次指定全部的条件。
2、安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定列上。通过视图,用户可以被限制在数据的不同子集上;
3、逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。
三、视图的语法
1、创建视图:CREATE VIEW <视图名>(<列表序列>)AS <SELECT查询语句>
例:对于教学数据库系统中基本表S、SC、C,用户经常用到S#、SNAME、CNAME和SCORE等列的数据,那么可用下列语句建视图:
CREATE VIEW STUDENT_SCORE (S#,SNAME,CNAME,SCORE) AS SELECTS.S#,SNAME,CNAME,SCORE FROM S,SC,C WHERE S.S#=SC.S# AND SC.C3=C.C#
2、视图的撤销:DROP VIEW <视图名>
例:DROP VIEWSTUDENT_SCORE
3、视图的更新:允许用户更新的视图在定义时必须加上“WITH CHECK OPTION”
例:CREATE VIEWS_MALE AS SELECT S#,SNAME,AGE FROM S WHERE SEX=’M’ WITH CHECK OPTION
加入“WITH CHECK OPTION”短语,就可以允许用户对视图进行插入、删除和修改的操作。
四、总结
通过上面对视图作用的介绍,不难发现好好的利用视图会给我们带来意想不到的方便,但是我们也不可以乱用,因为sql server必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,sql server也要把它变成一个复杂的结合体,需要花费一定的时间。