数据库视图以及SQL server视图操作

为何用视图

1.让用户都看到整个逻辑模型是不合适的。出于安全考虑,可能需要向用户隐藏特定的数据。

2.除了安全考虑,我们还希望能创建一个比逻辑模型更符合特定用户直觉的个人化的关系集合。

 

视图的定义

1.视图是从一个或多个 基本表/视图 中导出的表。视图是一个虚表。
2.数据库中只存放视图的定义,而不存放视图对应的数据。这些数据存放在原来的基本表中。
3.基本表中的数据发生变化,从视图中查询出的数据也随之改变。

 

创建视图

CREATE VIEW 视图名 [列名1、列名2...]
AS 子查询
[with check option]

①其中 [列名1,列名2…] 定义了视图中的列名,如果不指定的话,就和子查询中的列名一致。
②with check option语句可以省略不写。加上之后,如果对视图做修改,那么必须满足子查询。

 

重新定义视图

想为已经创建好的视图增加一列或几列:

CREATE OR ALTER VIEW 存在的视图名 AS
SELECT column_name1,column_name2...
FROM 基本表;

或者:

ALTER VIEW 视图名 (column_name1,column_name2...)
AS SELECT columnname1,colunmname2...
FROM 基本表名;

 

删除视图

DROP VIEW 视图名

①将某个视图删除之后,在该视图上建立的视图仍然存在,但是无法使用,需要手动删除它。
②一个视图删除之后,只是删除了视图的定义,数据还是存在的。
③删除基本表之后,由该基本表导出的所有视图定义必须使用drop view删除。

 

视图的查询

对视图的查询采用的方法:视图消解

视图消解:将用户执行的对视图的查询,转换为对基本表的查询。

例如:
zb是定义好的视图,该视图从表s上导出。
通过视图查询:

SELECT sno FROM zb
WHERE age>20;

视图消解法转换后:

SELECT sno FROM s
WHERE age>20; 

 

视图的更新

更新视图:通过视图插入、删除和修改数据。
插入、删除和修改等基本

像查询视图那样,对视图的更新操作也是通过视图消解,转换为对基本表的更新操作。

 

视图的作用

1.简化用户的操作
2.对重构数据库提供了一定程度的逻辑独立性
3.视图能够对机密数据提供安全保护
4.适当利用视图可以更清晰的表达查询

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