数据库视图的创建与使用.ppt

上传人:za****8 文档编号:14121032 上传时间:2020-07-04 格式:PPT 页数:46 大小:822.56KB
返回 下载 相关 举报
数据库视图的创建与使用.ppt_第1页
第1页 / 共46页
数据库视图的创建与使用.ppt_第2页
第2页 / 共46页
数据库视图的创建与使用.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
第6章视图的创建与使用,学习要点:创建视图的方法对视图进行管理利用视图修改源表数据6.1视图简介6.2创建视图6.3管理视图6.4通过视图修改数据,6.1视图简介,6.1.1视图的概念视图是一种数据库对象,它由多个字段列和数据行构成,这些列和行来自于一个或多个物理数据表。视图是一个虚拟表,所对应的数据是存储在所引用的数据表中,被引用的表称为基表。,例如:Customer基表Relationer基表表vCustInfo是由前两个表派生出来的视图:,6.1视图简介,6.1.2视图的特点:视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。视图是由基表(实表)产生的表(虚表)。视图的建立和删除不影响基表。对视图内容的更新(添加、删除和修改)直接影响基表。当视图来自多个基表时,不允许添加和删除数据。,6.1.3视图的作用:简化用户的操作。增加可读性。提高安全性。保证数据逻辑独立性。,创建视图需要注意:视图的名称必须满足命名规则,且必须是唯一的。只能在当前数据库中创建视图。定义视图的查询不可以包含ORDERBY子句或INTO子句。不能在视图上创建全文索引。通过视图修改表中数据时,不能违反数据完整性规则。,6.2创建视图,创建视图的常用工具使用企业管理器创建使用Transact-SQL语句创建,6.2.1使用企业管理器创建(1)进入新建视图对话框,右击创建视图的数据库,(2)为视图选择数据源,选择表,并添加到,右击鼠标,数据源可以是表、其他视图或函数,此处选择三个表作为数据源,(3)选择视图的输出字段(表达式),通过单击字段左边复选框选择字段,所选字段,视图的查询语句,在该图中的其他复选框的含义如下:“输出”复选框表示在输出结果中是否显示该字段内容;“准则”复选框中可以输入该字段的限制条件,用来限制记录的输出“排序类型”复选框表示新建视图的运行结果按照该字段的升序或降序排列。“或”复选框表示可以为该字段输入多个逻辑关系为“或”的限制条件.若为该字段输入逻辑关系为“与”的限制条件可在下边的Transact-SQL语句中用“AND”输入。,注:由以上复选框的设置可自动生成视图的查询语句也可在上图中由用户修改或重新输入,视图属性对话框中的有关选项的含义如下:“DISTINCT值”表示在视图的运行结果中是否显示重复记录。“加密浏览”实现对视图定义加密,一旦对视图进行加密以后将不能对视图的定义进行查看或修改。“顶端”复选框可以限制视图的最多输出记录条数。,(4)在视图设计窗口中单击工具栏中的按钮运行视图(5)点击“保存”按扭保存完成视图的创建,定制视图属性,视图属性对话框,6.2.2使用Transact-SQL语句创建其语法格式如下:,CREATEVIEW,.view_name(colume_name,n)WITH,nASselect_statementWITHCHECKOPTION,WITHview_attribute可以取以下值:(1)ENCRYPTION(2)SCHEMABINDING(3)VIEW_METADATA,简单记忆:CREATEVIEW视图名ASSELECT查询子句,database_name:指定了被创建的视图对象所在数据库名称Owner:用于指定视图的所有者的名称view_name:用于指定新建视图的名称colume_name:视图中的列名。可以包含多个列。若使用与源表或视图中相同的列名时,则不必给出colume_name。ENCRYPTION:表示将新建的视图加密SCHEMABINDING:表示在select_statement语句中如果包含表、视图或者引用户自定义函数,则表名、视图名或者函数名前必须包含所有者前缀VIEW_METADATA:表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQLServer将向DBLIB和OLEDBAPI返回视图的元数据信息select_statement:用于创建视图的SELECT语句WITHCHECKOPTION:用于强制视图上执行的所有数据修改语句都必须符合由select子句设置的准则,必须是数据库中现有用户名,例6_1:创建V_Salers视图,包括销售员的编号、姓名、性别、地址。利用Salers表。UsesalesGOCREATEVIEWV_Salers(编号,姓名,性别,地址)ASSELECTSaleID,Salename,Sex,AddressFROMSalers,打开sales数据库,视图名,视图包含的列名,例6_3:在sales数据库中创建如下视图:利用OrderDetails表和Products表查询每种产品销售的总价值。USESALESGOCREATEVIEWV_Sale_Total(定单编号,产品名称,销售总价值)WITHENCRYPTIONASSELECTOrderDetails.OrderID,Products.ProductName,Price*QuantityFROMOrderDetails,ProductsWHEREOrderDetails.ProductID=Products.ProductID,加密视图,在查询分析器中输入以下SQL语句会执行视图:SELECT*FROMV_Sale_Total会生成如下的查询结果:,WITHCHECKOPTION的视图,例6-4建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=ISWITHCHECKOPTION;,对IS_Student视图的更新操作,修改操作:DBMS自动加上Sdept=IS的条件删除操作:DBMS自动加上Sdept=IS的条件插入操作:DBMS自动检查Sdept属性值是否为IS如果不是,则拒绝该插入操作如果没有提供Sdept属性值,则自动定义Sdept为IS,基于视图的视图,例6-5建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATEVIEWIS_S2ASSELECTSno,Sname,GradeFROMIS_S1WHEREGrade=90;,建立分组视图,例6-6将学生的学号及他的平均成绩定义为一个视图,假设SC表中“成绩”列Grade为数字型CREATVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)FROMSCGROUPBYSno;,6.3管理视图,查看视图信息修改视图重命名视图删除视图,注:视图的管理工具是企业管理器和命令语句,6.3.1查看视图信息,利用企业管理器查看视图信息,右击视图,展开数据库,点击属性,视图的查询语句,视图的权限,利用系统存储过程查看视图信息sp_help显示数据库对象的特征sp_helptext查看数据库对象在系统表中的定义sp_depends显示有关数据库对象相关性的信息,USEsalesGOsp_helpV_Quantity,使用sp_help显示视图的特征语法如下:sp_helpobjname=name,被显示对象名称,例6-4:使用该存储过程显示视图V_Quantity的特征信息。,例6_5:使用该存储过程显示视图V_Quantity的在系统表中的定义,则在查询分析器中输入如下命令行。UsesalesGosp_helptextV_Quantity,使用sp_helptext显示视图在系统表中的定义语法如下:sp_helptextobjname=name,视图的定义,视图加密后不能显示视图的定义,例6_6:使用该存储过程显示视图V_Quantity的表依赖关系和引用的字段情况,则在查询分析器中输入如下命令行。,sp_depends显示视图对表的依赖关系和引用的字段语法如下:sp_dependsobjname=object,UsesalesGoSp_dependsV_Quantity,6.3.2修改视图,利用企业管理器对视图进行修改,展开数据库,右击视图,选择设计视图,利用ALTER命令对视图进行修改其语法形式如下:ALTERVIEWview_name(column,n)withencryptionASselect_statementwithcheckoption,其中:参数的含义与创建视图CREATEVIEW命令中的参数含义相同,简单记忆:ALTERVIEW视图名ASSELECT查询子句,通常利用该命令取消视图的加密属性,UsesalesGOAlterviewV_Sale_Total(定单编号,产品名称,销售总价值)ASSELECTOrderID,ProductName,Price*QuantityFROMdbo.OrderDetailsINNERJOINdbo.ProductsONdbo.OrderDetails.ProductID=dbo.Products.ProductID,例6_7:利用ALTER命令去除视图V_Sale_Total的加密属性。,注:去掉加密属性后才可以查看视图的信息,6.3.3重命名视图利用企业管理器对图对象重命名在企业管理器中双击该视图名利用存储过程sp_rename对视图重命名语法形式:sp_renameold_name,new_name例6_8:使用存储过程为视图V_customers重命名为V_customers1sp_renameV_customers,V_customers1,6.3.4删除视图利用企业管理器删除视图,右击视图,删除,注意:若有其他数据库对象依赖于将要删除的视图,则应考虑是否还要继续删除此视图,利用DROPVIEW命令删除视图,语法形式如下:DROPVIEWview,.n,例6-9:删除视图V_Customers。在查询分析器中输入以下命令:DropviewV_Customers,可以同时删除多个视图,6.4通过视图修改数据,插入记录修改记录删除记录,6.4.1利用视图插入记录利用企业管理器插入新记录“选中视图-右击-打开视图-返回所有行”,在视图的运行结果中直接填加新记录,利用INSERTINTO命令插入新记录,例6-10:首先创建一个新视图文件V_stocks,基于表Products,要求包含库存stocks值在300以上的记录,在插入新记录。,UsesalesGoCreateviewV_stocksAsSelectProductID,ProductName,CategoryID,Price,stocksFromproductsWherestocks300InsertintoV_stocksValues(P03007,冰糖,3,6.0000,200)Select*fromV_stocks例6-10,在插入新记录时须注意以下内容:若在视图的定义中为视图限制了查询条件或者基表的列允许空值或有默认值时,而新加入的记录又不符合该限制,此时,仍然可以向基表中插入记录,但再次运行视图时,将不能显示新插入的记录。若在视图的定义中使用了WITHCHECKOPTION选项,则当向视图中插入不符和视图查询限制的记录时,系统将不能将该记录插入到视图和基表中。若当基表对记录进行了某些限制,如,在基表中进行主键限制或触发器限制,如果新插入的记录不符和该限制时,系统也不能将该记录插入到视图和基表中。,6.4.2利用视图更新记录用企业管理器更新记录,要更新的记录必须符合视图的查询要求才能完成修改操作,否则在视图的运行对话框中不显示该记录,也就无法完成该操作。,具体步骤同插入记录类似,UPDATESET命令更新记录,例6-12:用前面已经创建的视图V_Salers,在查询分析器中输入如下命令UsesalesGoupdateV_Salersset地址=保定直达路1号where编号=s10,注意:若原视图的定义中包含WITHCHECKOPTION,如果所更新的新记录不符合限制条件,则更新操作出错。,6.4.3用视图删除记录企业管理器删除记录运行视图-在结果集中删除记录注意要删除的记录必须符合视图的查询要求才能完成该操作利用DELETE命令删除记录例6-14:利用视图V_stocks删除满足一定条件的记录。,USEsalesGoDELETEFROMV_stocksWHEREProductID=p03005,视图的使用小结,视图的使用:视图是数据库查询不同数据表的数据,并对之进行修改操作的常用技术。在创建视图之后,可以通过视图来对基表的数据进行管理,即可以对视图中的数据进行添加、修改和删除行的操作。对视图中的数据进行的任何作操,实际上都是对视图对应的数据表中的数据进行操作。,视图的使用小结,视图对数据的操作有一定的限制条件:如果视图来自多个基表,则不允许对视图进行插入、删除操作。如果在定义视图的查询语句中使用了聚合函数或GROUPBY、HAVING子句,则不允许对视图进行插入或更新操作。如果在定义视图的查询语句中使用了DISTINCT选项,则不允许对视图进行插入或更新操作。如果在视图定义中使用了WITHCHECKOPTION选项,则在视图上插入、修改的数据必须符合定义视图的SELECT语句的WHERE后所设定的条件。,第七章视图,小结:本章主要介绍了视图的相关知识,包括视图的创建、管理以及利用视图修改数据。在视图的创建部分详细介绍了利用视图向导、企业管理器和Transact-SQL语句创建视图的方法和具体步骤,其中应重点掌握利用企业管理器创建视图的方法;在管理视图部分详细介绍了查看、修改和删除视图等具体操作,对于这些常见的视图管理操作应熟练掌握。在本章的最后一节详细介绍了如何利用视图来修改数据源数据的具体操作步骤。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!