SQL Server教程 - T-SQL-视图(VIEW)
更新记录
转载请注明出处:https://www.cnblogs.com/cqpanda/p/16527488.html
2022年7月31日 发布。
2022年7月2日 从笔记迁移到博客。
视图说明(VIEW)
视图本质:已编译好的SQL语句
视图外在表现:一个虚拟的表或对象
视图是虚拟的表,本身不包含数据,对视图的操作和对普通表的操作一样
注意:只有当视图上建立索引之后,才会被具体化(存储到磁盘上)
视图作用(使用场景)
将多个表的指定字段组合在一个表中,或者只使用实际表的一部分数据
简化复杂的 SQL 操作,比如复杂的联结
更改数据格式和表示
将多个数据库或分布式数据库中的一个或多个表进行组合查询
对外提供虚拟表,限定用户只可以查看指定的数据,安全保密
视图可用于提供向后兼容接口来模拟曾经存在但其架构己更改的表
SQL Server复制数据和从其中复制数据时使用视图,以便提高性能并对数据进行分区
视图存在问题
性能;视图或多或少存在性能消耗,需要花费一定的时间
修改限制;部分视图不可以修改
视图和数据表的区别
(1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的数据表,而数据表不是。
(2)视图没有实际的物理记录,而基本表有。
(3)数据表是内容,视图是窗口。
(4)数表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在。数据表可以及时对它进行修改,但视图只能用创建的语句来修改。
(5)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以防止用户接触数据表,从而不知道表结构。
(6)数据表属于全局模式中的表,是真实表;视图属于局部模式的表,是虚拟表。
(7)视图的建立和删除只影响视图本身,不影响对应的基本表。
视图和数据表的联系
视图(View)是在基本表之上建立的数据表,它的结构(即所定义的列)和内容(即所有记录)都来自基本表,它依据基本表的存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。
视图分类
标准视图:
SELECT语句集合组成的视图
一般用于整合多个表的数据
索引视图:
带有索引(聚集索引)的视图
使用索引视图可以有效提高查询的性能
适合经常查询但不经常写入的视图
分区视图:
在一台或多台服务器间水平连接一组成员表中的分区数据
本地连接多张表的视图就是分区视图,只不过在本地而已
系统视图:
系统视图包含目录元数据
可以使用系统视图返回与SQL Server实例或在该实例中定义的对象有关的信息
比如可以查询 sys.databases 目录视图将返回实例中用户定义数据库有关的信息
创建视图
创建视图-使用SSMS
点击新建视图
选择需要的表:
编辑并保存视图
创建视图-使用T-SQL
CREATE VIEW [schema_name.][视图名] [列名,...]
AS
-- SQL语句
[ WITH CHECK OPTION ]
注意:
WITH CHECK OPTION使视图符合参与视图的表、视图的约束。
视图不可以包含COMPUTE和COMPUTE BY、ORDER BY、INTO、OPTION子句,不可以引用表变量、临时变量。
视图中有INSERT/DELETE/UPDATE时,不能同时修改多个表。
不能修改视图中的计算字段。
修改视图
修改视图内容-使用T-SQL
ALTER VIEW [视图名]
AS
-- SQL语句
[ WITH CHECK OPTION ]
修改视图名-使用T-SQL
exec sp_rename [old_view_name], [new_view_name];
修改视图中列的名称
exec sp_rename [view_name.column_name], [new_column_name];
修改和查看视图结构-使用SSMS
查看视图
查看视图结构-使用T-SQL
EXECUTE sp_help [视图名];
EXECUTE sp_helptext [视图名]; -- 查看VIEW定义语句
查看和编辑视图内容-使用SSMS
删除视图
删除视图-使用SSMS
删除视图-使用T-SQL
DROP VIEW [视图名];
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16527488.html