定义:
- 视图是从一个或多个表(或视图)导出的虚表。对于数据库用户来说,试图似乎是一个真实的表,它具有一组命名的数据列和行。但是,与真实的表不同,在视图中没有存储任何数据,仅仅是一种较简单的访问数据库里其他表中数据的方式,因此称它为“虚表”。视图只能建立在当前正在使用的数据库中。
优点:
- 聚焦数据
- 创建可以控制的环境,将需要的,常规的,适当的数据存储在视图中。
- 隐藏数据库的复杂性。
- 简化对用户的许可管理。
- 数据库拥有者只允许用户通过视图查询数据,保护了底层基本表的设计结构。
- 提高性能
- 存储复杂查询,分割数据。
- 输出数据给其他应用程序
创建视图时应该注意以下情况
- 只能在当前数据库创建
- 如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或视图。
- 如果视图中某一列是函数,数学表达式,常量或者来自多个表的列名相同,则必须为列定义名称。
- 当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库对象存在,而且数据修改语句不能违反数据完整性规则。
- 视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的。
创建视图
- 在 “对象资源管理器” 中,连接到 数据库引擎的实例。
- 在标准菜单栏上,单击 “新建查询”。
- 将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。
- 代码示范:
use 数据库名
create view 视图名
as select 语句 go
查询视图
- 语法
select 字段 from 视图名
删除视图
- 语法:
drop view 视图名
修改视图
- 语法:
use 数据库名
go alter view 视图名
as
新的T-SQL语句
go
- 修改视图的两个限制
- with check option
- 用于强制视图上执行的所有修改数据的语句都必须符合条件的限制。
- with encryption
- 表示SQL Server 加密包含create view 语句文本在内的系统表列。
- 只能加密,不可解密,所以加密前要备份。
- with check option
更新视图数据
- 语法:
use 数据库名
go update 视图名
set 语句
go
查看视图定义
- sp_helptext
- 显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本。
- 语法
exec sp_helptext 视图名
- 注意
- 加密后无法查看视图,所以需要保存源代码。