一.视图(VIEW)
定义:视图是一张虚拟的表,其内容是从一张或多张表中查询得来的结果集。
描述:视图是存储在系统目录中的信息,她并没有真正存储数据,而是已存表的投影。视图的属性是按照一个查询的规定从一个或者多个表中导出的,是已存表的过滤器。她是一张“虚表”,从一张表或者多张表中派生出来的,其来源称为“基表”,也可以说视图是一张“派生表”。
作用:用户更具自己需要,建立视图。这样就过滤掉了那些不常用或者用户不需要的数据,让用户的操作更加迅速。其优点:
1.降低数据库的复杂性。
2.集中用户数据。
3.简单管理。
4.组织数据转移到其他应用程序。
5.数据保密。
二.视图建立
CREATE VIEW <视图名> [(<列名>[,<列名>]......)]
AS <子查询>
[WITH CHECK OPTION]
子查询可以是任意复杂的SELECT语句,但是子查询中不能包括ORDER BY和DISTINCT语句。
WITH CHECK OPTION 表示对视图进行UPTATA,INSERT和DELETE操作时要保证更新、插入和删除的行满足视图定义中的为此条件(即子查询中的表达式)。
三.视图管理
1.重命名视图
实现方式有两种:
(1)通过 sp_name
格式:sp_name <原视图名>,<新视图名>
注意:此操作必须在当前数据库中,只有数据库拥有者和管理者才能对视图更名。
(2)通过管理器进行更名。
2.视图修改
格式:
ALTER VIEW <视图名>
AS
SELECT 查询语句
[WITH CHECK OPTION]
3.删除视图
格式:
DROP VIEW <视图名>
注意:在删除视图后,从这个视图派生出来的视图自动删除,但删除某个表后,基于这个表创建的视图不能自动删除。
四.视图应用
视图应用的约束,下列情况下不能对视图进行操作:
1.视图属性来自聚集函数或者包含表达式、常量。
2.视图定义语句中包含GROUP BY、GROUP 和DIXTINCT关键字。
3.视图的FROM字句涉及两个或多个表,而且视图属性列包含多个表的属性。
视图应用有,插入数据,删除数据,修改数据,查找数据,连起来就叫“增、删、该、查”,我把它们称为“珍、珠、奶、茶”。
1.插入数据
格式:INXERT INTO <视图名> VALUES( )
2.删除数据
格式:DELETE FROM <视图名> WHERE过滤器
3.修改数据
格式:UPDATA <视图名> SET条件 WHERE过滤器
4.查询数据
格式:SELECT 视图属性 FROM <视图名>