《《数据库原理与应用》08.视图的创建和使用.ppt》由会员分享,可在线阅读,更多相关《《数据库原理与应用》08.视图的创建和使用.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、孙孙孙孙 发发发发 勤勤勤勤 扬州大学新闻与传媒学院扬州大学新闻与传媒学院扬州大学新闻与传媒学院扬州大学新闻与传媒学院数据库原理与应用数据库原理与应用第八讲第八讲 视图的创建和使用视图的创建和使用 视图视图概述概述 创建视图创建视图 查看视图信息查看视图信息 修改和重命名视图修改和重命名视图 使用视图使用视图 本讲主要内容 概述视图的概念视图的概念 视视图图是是一一种种数数据据库库对对象象,是是从从一一个个或或者者多多个个数数据据表表或或视视图图中中导导出出的的虚虚表表,视视图图的的结结构构和和数数据据是是对对数数据据表表进进行行查查询询的的结果。结果。视视图图被被定定义义后后便便存存储储在在
2、数数据据库库中中,通通过过视视图图看看到到的的数数据据只只是是存存放放在在基基表表中中的的数数据据。当当对对通通过过视视图图看看到到的的数数据据进进行行修修改改时时,相相应应的的基基表表的的数数据据也也会会发发生生变变化化,同同时时,若若基基表表的的数数据发生变化,这种变化也会自动地反映到视图中。据发生变化,这种变化也会自动地反映到视图中。视视图图可可以以是是一一个个数数据据表表的的一一部部分分,也也可可以以是是多多个个基基表表的的联合。联合。使用视图的优点和作用 可以使视图集中数据、简化和定制不同用户对数据库的不同数据要求。可以使视图集中数据、简化和定制不同用户对数据库的不同数据要求。使用视
3、图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理和重新组织数据以便输出到其方便地使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。他应用程序中。视图可以使用户只关心他感兴趣的某些特定数据和他们所负责的特定任视图可以使用户只关心他感兴趣的某些特定数据和他们所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示。务,而那些不需要的或者无用的数据则不在视图中显示。视图大大地简化了用户对数据的操作。视图大大地简化了用户对数据的操作。视图可以让不同的用户以不同的方式看
4、到不同或者相同的数据集。视图可以让不同的用户以不同的方式看到不同或者相同的数据集。在某些情况下,由于表中数据量太大,因此在表的设计时常将表进行水在某些情况下,由于表中数据量太大,因此在表的设计时常将表进行水平或者垂直分割,但表的结构的变化对应用程序产生不良的影响。平或者垂直分割,但表的结构的变化对应用程序产生不良的影响。视图提供了一个简单而有效的安全机制。视图提供了一个简单而有效的安全机制。概述视图的优点视图的优点1.1.视图可以屏蔽数据的复杂性,简化用户对数据库的操作。视图可以屏蔽数据的复杂性,简化用户对数据库的操作。2.2.视视图图可可以以让让不不同同的的用用户户以以不不同同的的方方式式看
5、看到到不不同同或或者者相相同同的的数据集。数据集。3.3.可以使用视图重新组织数据。可以使用视图重新组织数据。4.4.视图可以定制不同用户对数据的访问权限。视图可以定制不同用户对数据的访问权限。创建视图 视图的名称视图的名称 只能在当前数据库中创建视图。只能在当前数据库中创建视图。一个视图中行、列的限制。一个视图中行、列的限制。如如果果视视图图中中某某一一列列是是函函数数、数数学学表表达达式式、常常量量或或者者来来自自多多个个表的列名相同,则必须为列定义名称。表的列名相同,则必须为列定义名称。视图与基表的关系视图与基表的关系不不能能在在视视图图上上创创建建索索引引,不不能能在在规规则则、默默认
6、认的的定定义义中中引引用用视视图。图。创建视图1、使用企业管理器创建视图、使用企业管理器创建视图 2、使用、使用Transact-SQL语句创建视图语句创建视图 CREATE VIEW .view_name (column ,.n )WITH ,.n ASselect_statement WITH CHECK OPTION :=ENCRYPTION|SCHEMABINDING|VIEW_METADATA 3 3、使用向导创建视图、使用向导创建视图 查看视图信息 1 1 使用企业管理器查看视图信息使用企业管理器查看视图信息 2 2 使用系统存储过程查看视图信息使用系统存储过程查看视图信息 sp_
7、help sp_help 数据库对象名称数据库对象名称sp_helptext sp_helptext 视图(触发器、存储过程)视图(触发器、存储过程)sp_depends sp_depends 数据库对象名称数据库对象名称 修改和重命名视图 1使用企业管理器修改视图使用企业管理器修改视图 2使用使用Transact-SQL语句修改视图语句修改视图 ALTER VIEW view_name(column,.n)WITH ENCRYPTIONAS select_statement WITH CHECK OPTION 修改和重命名视图1使用企业管理器重命名视图使用企业管理器重命名视图2使用系统存储过
8、程重命名视图使用系统存储过程重命名视图 sp_rename old_name,new_name 使用视图 1.1.修改视图中的数据时每次修改都只能影响一个基表。修改视图中的数据时每次修改都只能影响一个基表。2.2.不能修改那些通过计算得到的字段。不能修改那些通过计算得到的字段。3.3.如如果果在在创创建建视视图图时时指指定定了了WITH CHECK OPTION选选项项,那那么么所所有有使使用用视视图图修修改改数数据据库库信信息息时时,必必须须保保证证修修改改后后的的数数据据满满足足视视图定义的范围。图定义的范围。4.4.执执行行UPDATE、DELETE命命令令时时,所所删删除除与与更更新新
9、的的数数据据必必须须包包含在视图的结果集中。含在视图的结果集中。5.5.如如果果视视图图引引用用多多个个表表时时,无无法法用用DELETE命命令令删删除除数数据据,若若使使用用UPDATE命命令令则则应应与与INSERT操操作作一一样样,被被更更新新的的列列必必须须属属于同一个表。于同一个表。使用视图通过视图添加表数据1 插入数据记录插入数据记录 1使用企业管理器在视图中插入记录 2使用Transact-SQL语句通过视图插入记录可以使用可以使用insert语句向视图中添加表数据。但是,语句向视图中添加表数据。但是,使用使用insert语句在视图中添加的数据,将存储在语句在视图中添加的数据,将
10、存储在视图参照的数据表中。视图参照的数据表中。由于视图的特性,通过视图向数据表中添加数据,由于视图的特性,通过视图向数据表中添加数据,必须满足下列条件必须满足下列条件:使用视图插入数据记录1、使用、使用insert语句向数据表中插入数据的用户必须在数据表中有语句向数据表中插入数据的用户必须在数据表中有插入数据的权限。插入数据的权限。2、由于视图通常只引用表中的部分字段,那些在视中未引用的、由于视图通常只引用表中的部分字段,那些在视中未引用的字段必须知道在没有指定取值的情况下如何填充数据。如字段必须知道在没有指定取值的情况下如何填充数据。如:允许空、允许空、有默认值等。有默认值等。3、视图中不能
11、包含多个字段值的组合,或包含了使统计函数的、视图中不能包含多个字段值的组合,或包含了使统计函数的结果。结果。4、不能包含、不能包含distinct或或group by子句子句5、若使用了、若使用了with check option,则须符合则须符合where子句的插入条件。子句的插入条件。6、若视图引用了多个数据表,则通过视图向数据表添加数据时,、若视图引用了多个数据表,则通过视图向数据表添加数据时,这个语句只能指定同一个表中的字段。这个语句只能指定同一个表中的字段。若希望通过一个引用了多个数据表的视图中添加数据时,必须若希望通过一个引用了多个数据表的视图中添加数据时,必须写多个写多个inse
12、rt语句。语句。使用视图更新视图中的数据2 更新数据记录更新数据记录 1使用企业管理器在视图中更新记录2使用Transact-SQL语句通过视图更新记录同样,可以使用同样,可以使用update语句,通过视图对数据表中的语句,通过视图对数据表中的数据进行更新。数据进行更新。注意注意:通过使用多个表的视图对数据表进行更新也需要通过使用多个表的视图对数据表进行更新也需要书写多个书写多个update语句。语句。适用与适用与insert操作的许多限制同样适用与操作的许多限制同样适用与update操作。操作。使用视图删除数据记录 3 删除数据记录删除数据记录 1使用企业管理器在视图中删除记录 2使用Transact-SQL语句通过视图删除记录 使用视图删除记录时,可以直接利用Transact-SQL语言的DELETE语句删除视图中的记录。但应该注意,必须指定在视图中定义过的字段来删除记录。使用delete可以通过视图将数据表中的数据删除,但是若视图应用了两个或两个以上的数据表,则 不允许删除视图中的数据。通过视图删除的记录也不能违背视图定义的子句中的条件限制。删除视图 1 使用企业管理器删除视图使用企业管理器删除视图 2 使用使用Transact-SQL语句删除视图语句删除视图 DROP VIEW view_name,n