一、什么是视图
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果,只存放视图的定义,不存放视图对应的数据;其结构和数据是建立在对表的查询基础上,故表中的数据发生变化,从视图中查询出的数据也随之改变。视图最多可以包含1024列。
二、视图的类型
- 索引视图:
索引视图是被具体化了的视图。 这意味着已经对视图定义进行了计算并且生成的数据像表一样存储。 可以为视图创建索引,即对视图创建一个唯一的聚集索引。 索引视图可以显著提高某些类型查询的性能。 索引视图尤其适于聚合许多行的查询。 但它们不太适于经常更新的基本数据集。 - 分区视图:
分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。 这样,数据看上去如同来自于一个表。 - 系统视图
- 自定义视图
三、视图创建准则
- 视图名称必须遵循标识符的规则,该名称不得与该架构的表名相同。
- 可以对其他视图创建视图。允许嵌套视图,但嵌套不得超过32层。视图最多可以有1024个字段 不能将规则和default定义于视图相关联。
- 视图的查询不能包含compute子句、compute by子句或into关键字 定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句。
- 下列情况必须指定视图中每列的名称:
- 视图中的如何列都是从算术表达式、内置函数或常量派生而来
- 视图中有两列或多列具有相同名称(通常由于视图定义包含联接,因此来自两个或多个不同的列具有相同的名称)
- 希望视图中的列指定一个与其原列不同的名称(也可以在视图中重命名列)。无论是否重命名,视图列都会继承原列的数据类型
四、视图的作用
- 集中、简化和自定义每个用户对数据库的认识。
- 用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问底层基表的权限。
- 提供向后兼容接口来模拟架构已更改的表。
五、视图的创建
- 使用SSMS工具创建
- 在左侧的对象资源管理器中,展开要新建视图的数据库。
- 右击视图文件夹,选择新建视图。
- 在弹出的添加表对话框中选择要在视图中包含的元素:表、视图、函数、同义词。
- 点击添加,然后关闭。
- 在关系图窗格中,选择要在新视图中包含的列或其他元素。
- 在条件窗格中,选择列的其他排序或筛选条件。
- 点击保存或者按下Ctrl+S
- 在选择名称对话框中,输入新视图的名称并点击确定
- 使用T-SQL语句创建
create view View_Admin as select * from t_admin
六、修改视图
- 通过SSMS工具修改视图
- 在左侧的对象资源管理器”中,单击视图所在的数据库旁边的加号,然后单击视图文件夹旁边的加号。
- 右击要修改的视图,选择设计。
- 在查询设计器的关系图窗格中,修改视图。
- 点击保存或者按下Ctrl+S。
- 通过T-SQL语句修改视图
alter view View_Admin as select * from t_admin where adminId>=18
七、删除视图
- 通过SSMS工具删除
- 在左侧的对象资源管理器”中,展开包含要删除的视图的数据库,然后展开视图文件夹。
- 右击要删除的视图,选择删除。
- 在删除对象对话框中,单击确定。
- 通过T-SQL语句删除
drop view View_Admin