SQLServer视图详解

视图是数据库中的虚表,基于一个或多个表的查询结果,不存储数据,仅存储定义。它可以简化数据访问,提供安全性,并用于向后兼容。文章介绍了视图的类型,如索引视图和分区视图,以及创建、修改和删除视图的方法,包括使用SQL语句和SSMS工具。
摘要由CSDN通过智能技术生成

一、什么是视图

视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果,只存放视图的定义,不存放视图对应的数据;其结构和数据是建立在对表的查询基础上,故表中的数据发生变化,从视图中查询出的数据也随之改变。视图最多可以包含1024列。

二、视图的类型

  1. 索引视图:
    索引视图是被具体化了的视图。 这意味着已经对视图定义进行了计算并且生成的数据像表一样存储。 可以为视图创建索引,即对视图创建一个唯一的聚集索引。 索引视图可以显著提高某些类型查询的性能。 索引视图尤其适于聚合许多行的查询。 但它们不太适于经常更新的基本数据集。
  2. 分区视图:
    分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。 这样,数据看上去如同来自于一个表。
  3. 系统视图
  4. 自定义视图

三、视图创建准则

  1. 视图名称必须遵循标识符的规则,该名称不得与该架构的表名相同。
  2. 可以对其他视图创建视图。允许嵌套视图,但嵌套不得超过32层。视图最多可以有1024个字段 不能将规则和default定义于视图相关联。
  3. 视图的查询不能包含compute子句、compute by子句或into关键字 定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句。
  4. 下列情况必须指定视图中每列的名称:
  • 视图中的如何列都是从算术表达式、内置函数或常量派生而来
  • 视图中有两列或多列具有相同名称(通常由于视图定义包含联接,因此来自两个或多个不同的列具有相同的名称)
  • 希望视图中的列指定一个与其原列不同的名称(也可以在视图中重命名列)。无论是否重命名,视图列都会继承原列的数据类型

四、视图的作用

  1. 集中、简化和自定义每个用户对数据库的认识。
  2. 用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问底层基表的权限。
  3. 提供向后兼容接口来模拟架构已更改的表。

五、视图的创建

  1. 使用SSMS工具创建
  • 在左侧的对象资源管理器中,展开要新建视图的数据库。
  • 右击视图文件夹,选择新建视图。
  • 在弹出的添加表对话框中选择要在视图中包含的元素:表、视图、函数、同义词。
  • 点击添加,然后关闭。
  • 在关系图窗格中,选择要在新视图中包含的列或其他元素。
  • 在条件窗格中,选择列的其他排序或筛选条件。
  • 点击保存或者按下Ctrl+S
  • 在选择名称对话框中,输入新视图的名称并点击确定
  1. 使用T-SQL语句创建
    create view View_Admin as select * from t_admin

六、修改视图

  1. 通过SSMS工具修改视图
  • 在左侧的对象资源管理器”中,单击视图所在的数据库旁边的加号,然后单击视图文件夹旁边的加号。
  • 右击要修改的视图,选择设计。
  • 在查询设计器的关系图窗格中,修改视图。
  • 点击保存或者按下Ctrl+S。
  1. 通过T-SQL语句修改视图
    alter view View_Admin as select * from t_admin where adminId>=18

七、删除视图

  1. 通过SSMS工具删除
  • 在左侧的对象资源管理器”中,展开包含要删除的视图的数据库,然后展开视图文件夹。
  • 右击要删除的视图,选择删除。
  • 在删除对象对话框中,单击确定。
  1. 通过T-SQL语句删除
    drop view View_Admin
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

策码奔腾R

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值