第9章 视图的使用
视图是一种常用 的数据库对象,它将查询的结果以虚拟表的形式存储在数据中,视图并不在数据库中以存储数据集的形式存在.视图的结构和内容是建立在对表的查询基础之上的,和表一样包括行和列,这些行,列数据都来源于其所引用的表,并且是在引用视图过程中动态生成的.
视图的内容是由查询定义的,并且视图和查询都是通过SQL语句定义的,它们 有着这么多相同和不同之处,具体如下:
>.存储.视图存储为数据库设计的一部分,而查询不是.视图可以禁止所有用户访问数据库中的基表,而要求用户只能通过视图操作数据.这种方法可以保护用户和应用程序不受某些数据库修改的影响,同样也可以保护数据表的安全性.
>.排序:可以排序任何查询结果,但是只有当视图包括TOP子句时才能排序视图.
>.加密:可以加密视图,但不能加密查询.
>.视图的分类与操作.
视图分为3类:
>.标准视图.保存在数据库中的SELECT查询语句,即通常意义上理解的视图.
>.索引视图:创建有索引的视图称为索引视图.它经过计算并存储自己的数据,可以提高某些类型查询的性能,尤其适用于聚合这么多行的查询,但不太适用于经常更新的基本数据集.
>.分区视图:是在一台或多台服务器间水平连接一组表中的分区数据,以使数据看上去来自一个表.
>.以界面方式操作视图.
在视图设计器界面中完成视图的设置,按保存键可以保存视图
>.视图的删除.
在左边视图目录里右键删除即可.
>.使用SQL语句操作视图
--创建视图可以通过 CREATE VIEW 语句实现,该语句会将一个查询的结果保存为一个虚拟的表,方便后续查询和操作。 -- 创建一个名为CustomerSummary的视图,显示顾客和他们的订单数量 CREATE VIEW CustomerSummary AS SELECT c.CustomerID, c.CustomerName, COUNT(o.OrderID) AS OrderCount FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName; -- 查看新创建的视图内容 SELECT * FROM CustomerSummary; --修改视图通常涉及更新视图的查询逻辑或字段,可以使用 ALTER VIEW 语句。直白的说就是修改SQL语句
--如果原来的视图定义是用WITH ENCRYPTION 或CHECK OPTION创建的,那么只有在ALTER VIEW中也包含这些选项时,这些选项才有效 -- 修改CustomerSummary视图,增加顾客的联系方式 ALTER VIEW CustomerSummary AS SELECT c.CustomerID, c.CustomerName, c.ContactPhone, COUNT(o.OrderID) AS OrderCount FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName, c.ContactPhone; --删除视图可以使用 DROP VIEW 语句。 -- 删除名为CustomerSummary的视图 DROP VIEW CustomerSummary; --SQL中使用SP_RENAME可以对视图进行重命名. exec sp_rename old_view,new_view
使用UPDATE,DELETE修改视图里的数据会直接影响引用表
UPDATE v1 SET sclass=5 WHERE id=1; DELETE v1 WHERE id=6; SELECT * FROM v1; SELECT * FROM dbo.student;
>.浏览视图中的数据.
标签:读书笔记,--,视图,SERVER,CustomerSummary,查询,CustomerID,VIEW From: https://www.cnblogs.com/yoooos/p/18127335