首页 > 数据库 >SQL SERVER 从入门到精通 第5版 第二篇 第9章 视图的使用 读书笔记

SQL SERVER 从入门到精通 第5版 第二篇 第9章 视图的使用 读书笔记

时间:2024-04-10 21:11:28浏览次数:24  
标签:读书笔记 -- 视图 SERVER CustomerSummary 查询 CustomerID VIEW

 

 第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

相关文章

  • 【SERVERLESS】搭建ServerLess服务
    目录一、前言二、什么是ServerLess?三、ServerLess技术选型四、ServerLess基础服务搭建Mac安装示例:Windows安装说明:五、生成ServerLess应用六、ServerLess部署验证并访问函数应用七、ServerLess进阶演示八、ServerLess最后总结一、前言​通常我们在做ServerL......
  • SQL SERVER 从入门到精通 第5版 第二篇 第8章 SQL数据高级查询 读书笔记
     第8章SQL数据高级查询 >.子查询与嵌套查询>.子查询概述:子查询是一个嵌套在SELECT,INSERT,UPDATE和DELETE语句或者其他子查询中的查询,任何允许使用表达式的地方都可以使用子查询.子查询语法规则如下:>.子查询的SELECT查询总使用圆括号......
  • 【转载】在SAP HANA中创建普通用户进行模型视图开发的权限设置
    转载自SAPComumunity模型视图是SAPHANA中一个重要的组成部分,它包括属性视图、分析视图以及计算视图。正确地使用模型视图进行开发,不仅能够在团队开发中使开发人员对业务理解能有更好的传递作用,也能够对业务场景进行加速,提高执行速度。相信读者之前对于模型视图的概念已经有了......
  • jmeter监控服务器工具jp@gc - PerfMon Metrics Collector(ServerAgent)
    一、在服务器上安装ServerAgentSeverAgent:这个工具,可以和jmeter集成,在jmeter的GUI界面可以看到数据。链接:https://pan.baidu.com/s/1k3xlXk35YfPmS17-2ZFBnA?pwd=5s4n提取码:5s4n复制这段内容后打开百度网盘手机App,操作更方便哦使用unzip命令解压文件......
  • SQL SERVER 从入门到精通 第5版 第二篇 第7章 SQL数据查询基础 读书笔记
     第7章SQL数据查询基础 SELECT检索数据>.SELECT语句是SQL语句中功能最强大,也是最复杂的语句,所以我决定略过.>.WITH子句指定临时命名的结果集(非临时表),这些结果集称为公用表表达式WITHtemp_nameAS(--在这里定义临时结果集的查询......
  • SQLSERVER 2019数据库(可疑) 数据修复案例
    2019数据库,在正常使用过程中,服务器突然断电,重新启动服务器后,数据库变为(可疑)。【数据恢复故障分析】由于数据库在正常读写操作过,服务器突然断电,导致数据库无法把所有缓冲中的数据写入到数据库文件中,所以会使数据内部索引及数据区损坏。【数据恢复过......
  • 大型场景中通过监督视图贡献加权进行多视图人物检测 Multi-View People Detection in
    Multi-ViewPeopleDetectioninLargeScenesviaSupervisedView-WiseContributionWeighting大型场景中通过监督视图贡献加权进行多视图人物检测论文urlhttps://ojs.aaai.org/index.php/AAAI/article/view/28553论文简述:这篇论文提出了一个用于大型场景中多视角人体检测......
  • SQL Server索引进阶篇----系列文章
    SQLServer索引进阶第一篇:索引介绍索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。本......
  • SQL Server非聚集索引--包含列(翻译官方介绍)
    SQLServerindexesarecreatedtospeeduptheretrievalofdatafromthedatabasetableorview.Theindexcontainsoneormorecolumnsfromyourtable.ThestructureofthesekeysareintheshapeofB-treedistribution,enablingSQLServertofindthe......
  • 独立站点发布VectorTileServer的方法
    独立站点部署模式下,发布矢量切片服务的方式说明二维切片类型栅格地图瓦片(MapServer|WMTS)切片图层可绘制服务器上一组可通过Web访问的切片。在绘制栅格地图瓦片图层时,对在当前地图范围和地图比例中绘制图层时所需的切片执行请求。切片图层可用于绘制一组托管在已知U......