[SQL Server系] -- 视图
1:定义
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。
从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。
从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。
通俗的讲:假如现在有两张表,你需要选取两张表中的部分数据,将这些数据重新组成一张表,以便于查询,则可将这两张表的结果组成视图(相当于虚拟表)。
2:特点
- 视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。
- 对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。
- 当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化。
- 若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
3:语法
CREATE VIEW 视图名 [WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }] AS SELECT 列1, 列2, ……, 列n FROM 表名 [WHERE 从句] [WITH CHECK OPTION]
eg:
删除视图:
DROP VIEW 视图名
假设有某个表结构如下:
但是由于社保号(ssn)等信息是需要保密的,不能随便查询, 但是某些列又必须查询,此时就可以使用视图把可以查询的列公开出来。
假如查询这些列: