第七章 视图和游标

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章视图和游标回顾索引和全文索引回顾:索引概念索引优势聚集索引非聚集索引全文搜索全文索引2目标视图概念列出视图的优点列出创建视图的指导原则描述如何通过视图修改数据解释如何删除视图定义游标描述如何创建游标了解游标的执行过程解释如何提取游标行3视图简介4EmployeeViewLastnameFirstnameDavolioFullerLeverlingNancyAndrewJanetEmployeesEmployeeIDLastNameFirstnameTitle123DavolioFullerLeverlingNancyAndrewJanet~~~~~~~~~USENorthwindGOCREATEVIEWdbo.EmployeeViewASSELECTLastName,FirstnameFROMEmployees用户视图视图概念视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。视图并不是数据库中存储的数据值的集合。视图充当着查询中指定的表的筛选器。5视图的用途筛选表中的行防止未经许可的用户访问敏感数据降低数据库的复杂程度将多个物理数据库抽象为一个逻辑数据库6视图的优点对最终用户的好处结果更容易理解获得数据更容易对开发人员的好处限制数据检索更容易维护应用程序更方便7创建视图在T-SQL语言中,CREATEVIEW语句用于创建视图。语法8CREATEVIEWViewnameASSelectStatement示例CREATEVIEWNewMoon_employeeASSELECTemp_id,fname,minit,lname,hire_dateFROMemployeee,publisherspWHEREe.pub_id=p.pub_idANDpub_name='NewMoonBooks'创建视图实例9OrderID1066310827104271045110515CustomerIDBONAPBONAPPICCOQUICKQUICK~~~~~~~~~~~~~~~RequiredDate1997-09-241998-01-261997-02-241997-03-051997-05-07ShippedDate1997-10-031998-02-061997-03-031997-03-121997-05-23OrdersCustomersShipStatusViewUSENorthwindGOCREATEVIEWdbo.ShipStatusViewASSELECTOrderID,RequiredDate,ShippedDate,ContactNameFROMCustomerscINNERJOINOrdersoONc.CustomerID=O.CustomerIDWHERERequiredDateShippedDateCustomerIDBONAPPICCOQUICKCompanyNameBonapp'PiccoloundmehrQUICK-StopContactNameLaurenceLebihanGeorgPippsHorstKlossOrderID1026410271102801996-08-211996-08-291996-09-11ShippedDate1996-08-231996-08-301996-09-12ContactNameLaurenceLebihanGeorgPippsHorstKloss创建视图的指导原则1-2只能在当前数据库中创建视图视图名称应与表名近似视图名称应遵循标识符的命名规则可以基于其他视图建立视图不能将默认值、规则和触发器与视图相关联不能为视图建立索引10创建视图的指导原则2-2创建视图时不能使用临时表。即使表被删除,视图定义仍将保留。定义视图的查询不能包含以下语句:-ORDERBY-COMPUTE子句-COMPUTEBY子句-INTO关键字11通过视图修改数据满足下列条件时,可以使用视图修改表中的数据:•视图定义的FROM子句中应至少包含一个表。•选择列表中没有使用聚合函数或GROUPBY、UNION、DISTINCT或TOP子句。•视图的选择列表中不包含派生列。12修改视图的定义修改视图13USENorthwindGOALTERVIEWdbo.EmployeeViewASSELECTLastName,FirstName,ExtensionFROMEmployees注意:只有在ALTERVIEW执行前后列名称不变的情况下,列上的权限才会保持不变删除视图14DROPVIEWview_name示例DROPVIEWNewMoon_employee语法•不再需要某个视图时,可以将其删除以释放资源。•删除视图对基表不产生任何影响。游标概念游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制游标提供了一种对从表中检索出的数据进行操作的灵活手段使用游标,可以实现以下目标:允许定位到结果集中的特定行。从结果集的当前位置检索一行或多行数据。支持对结果集中当前位置的行进行修改。对于其他用户对结果集包含的数据库数据所做的修改,支持不同的可见性级别15游标优点游标允许应用程序对查询语句select返回的行结果集中每一行进行相同或不同的操作它还提供对基于游标位置而对表中数据进行删除或更新的能力游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来使两个数据处理方式能够进行沟通16游标工作进程把游标与Transact-SQL语句的结果集相关联,并且定义游标的特征,如是否能够更新游标中的行。执行Transact-SQL语句以填充游标。检索想要查看的游标中的行。根据需要,对游标中当前位置的行执行修改操作(更新或删除)。关闭游标。1718游标实现方式•T_SQL游标•API服务器游标•客户端游标游标的提取和滚动操作从游标中检索一行或多行的操作称为提取执行一系列的提取操作以向前或向后检索行的操作称为滚动19API服务器游标类型只进游标静态游标键集驱动游标动态游标2021在T_SQL中创建游标•DECLARE语句用于创建游标。•它包含SELECT语句,用来引入表中的记录。语法DECLARECursor_NameCURSOR[LOCAL|GLOBAL][FORWARDONLY|SCROLL][STATIC|KEYSET|DYNAMIC|FAST_FORWARD][READ_ONLY|SCROLL_LOCKS|OPTIMISTIC][TYPE_WARNING]FORSelectStatements[FORUPDATE[OFColumn_name[,….N]]]22在T_SQL使用游标•打开游标OPENCursor_name•检索记录FETCHCursor_name•关闭游标CLOSECursor_name•删除游标引用DEALLOCATECursor_name在T_SQL提取和滚动游标1-2FETCHFIRST:提取游标的第一行。FETCHNEXT:提取上次提取的行的下一行。FETCHPRIOR:提取上次提取的行的前一行。FETCHLAST:提取游标中的最后一行。FETCHABSOLUTEn:-如果n为正整数,则提取游标中的第n行-如果n为负整数,则提取游标最后一行之前的第n行-如果n为0,则不提取任何行23在T_SQL提取和滚动游标2-2FETCHRELATIVEn:-如果n为正,则提取上次提取的行之后的第n行。-如果n为负,则提取上提取的行之前的第n行。-如果n为0,则再次提取同一行。24FETCH语句全局变量@@FETCH_STATUS:为执行的上一个游标FETCH语句返回一个整数值。@@CURSOR_ROWS:返回当前打开的游标中符合条件的行的数目。25在T_SQL创建和使用游标示例2627总结•视图概念•视图优点•创建和使用视图•修改和删除视图•游标概念•游标优点•游标实现方法•服务器游标类型•在T_SQL中创建和使用游标

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功