当前位置: 代码网 > it编程>数据库>MsSqlserver > SQLServer视图详解

SQLServer视图详解

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

一、什么是视图

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

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com