书签 分享 收藏 举报 版权申诉 / 36
上传文档赚钱

类型《数据库应用基础》课件-第六章-视图(1).ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2146457
  • 上传时间:2022-03-03
  • 格式:PPT
  • 页数:36
  • 大小:633.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《数据库应用基础》课件-第六章-视图(1).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库应用基础 数据库 应用 基础 课件 第六 视图
    资源描述:

    1、第六章第六章视图视图实体完整性实体完整性域完整性域完整性引用完整性引用完整性用户自定义完用户自定义完整性整性数数据据完完整整性性的的分分类类行行列列表表表表6.1 6.1 视图概述视图概述1 视图的基本概念视图的基本概念2 使用视图的优点和缺点使用视图的优点和缺点 (1 1)隐蔽数据库的复杂性)隐蔽数据库的复杂性(2 2)控制用户提取数据)控制用户提取数据(3 3)简化数据库用户管理)简化数据库用户管理(4 4)改进性能)改进性能1 视图的基本概念视图的基本概念 数据视图数据视图是另一种在一个或多是另一种在一个或多个数据表上观察数据的途径,可以个数据表上观察数据的途径,可以把数据视图看作是一个

    2、能把焦点定把数据视图看作是一个能把焦点定在用户感兴趣的数据上的监视器,在用户感兴趣的数据上的监视器,用户看到的是用户看到的是实时数据实时数据 视图可以被看成是视图可以被看成是虚拟表虚拟表或或存存储查询储查询,用户可以通过视图来插入、,用户可以通过视图来插入、更改和删除数据更改和删除数据 例例6-16-1:图书管理员现在需要查询图书的借用历:图书管理员现在需要查询图书的借用历史记录,确认图书的借用情况,目前有几本图史记录,确认图书的借用情况,目前有几本图书被借出,由哪些人借用,借用日期是何时。书被借出,由哪些人借用,借用日期是何时。图书的名称,借阅人的名字以及相关借用日期,图书的名称,借阅人的名

    3、字以及相关借用日期,分别存在三个不同的表分别存在三个不同的表book_infobook_info、borrower_infoborrower_info和和lend_listlend_list内,给内,给SQLSQL查询带来查询带来的一定的复杂性。采用视图的方法,能够很好的一定的复杂性。采用视图的方法,能够很好的解决该问题。视图可以使得所有需要显示的的解决该问题。视图可以使得所有需要显示的图书借用信息好像都记录在一张表内一样。下图书借用信息好像都记录在一张表内一样。下面建立系统中的视图面建立系统中的视图lendbooklendbook: use Library_DBgoCREATE VIEW l

    4、endbook ASSELECT lend_list.book_id,lend_list.borrower_id,lend_list.lend_date, lend_list.back_date,book_info.name AS bookname,borrower_info.nameFROM lend_list INNER JOIN book_info ON lend_list.book_id = book_info.book_id INNER JOIN borrower_info ON lend_list.borrower_id = borrower_info.id需要查询所需的图书借阅历

    5、史记需要查询所需的图书借阅历史记录时,只需执行如下查询语句:录时,只需执行如下查询语句: SELECT * FROM lendbook 2 使用视图的优点和缺点使用视图的优点和缺点(1 1)隐蔽数据库的复杂性)隐蔽数据库的复杂性 开发者可以在不影响用户使用数据开发者可以在不影响用户使用数据库的情况下可以改变数据库内容,即使库的情况下可以改变数据库内容,即使在基表发生更改或重新组合的情况下,在基表发生更改或重新组合的情况下,用户还能够通过视图用户还能够通过视图获得一致获得一致和和非变化非变化的数据。的数据。 2 使用视图的优点和缺点使用视图的优点和缺点(2 2)控制用户提取数据)控制用户提取数据

    6、 通过将某些通过将某些不需要的不需要的、敏感的敏感的或是或是不适当的数据控制在视图之外不适当的数据控制在视图之外,可以实,可以实现为用户定制其个人所使用的表。实际现为用户定制其个人所使用的表。实际上这也是一种安全机制。用户可以访问上这也是一种安全机制。用户可以访问某些数据,进行查询和修改,但是表或某些数据,进行查询和修改,但是表或数据库的其余部分是不可见的,也不能数据库的其余部分是不可见的,也不能进行访问。进行访问。 2 使用视图的优点和缺点使用视图的优点和缺点(3 3)简化数据库用户管理)简化数据库用户管理 通过通过定义不同的视图定义不同的视图及及有选择地授有选择地授予予视图上的视图上的权限

    7、权限,可以将用户、组或角,可以将用户、组或角色色限制在不同的限制在不同的数据子集内。数据子集内。 2 使用视图的优点和缺点使用视图的优点和缺点(3 3)简化数据库用户管理)简化数据库用户管理 l可以将访问限制在基表中可以将访问限制在基表中行的子集行的子集内。内。 l可以将访问限制在基表中可以将访问限制在基表中列的子集列的子集内。内。 l可以将访问限制在基表中可以将访问限制在基表中列和行的子集列和行的子集内。内。 l可以将访问限制在符合可以将访问限制在符合多个基表联接多个基表联接的行内。的行内。 l可以将访问限制在基表中可以将访问限制在基表中数据的统计汇总数据的统计汇总内。内。 l可以将访问限制

    8、在可以将访问限制在另一个视图的子集内另一个视图的子集内或或视图视图和基表组合的子集和基表组合的子集内。内。 例:定义一个视图,其中只含有例:定义一个视图,其中只含有管理类书籍或计算机应用类书籍管理类书籍或计算机应用类书籍的行,向用户隐藏有关其它类型的行,向用户隐藏有关其它类型书籍的信息。书籍的信息。 例:定义一个视图,其中含有例:定义一个视图,其中含有booksbooks表中的所有行,但省略了表中的所有行,但省略了 price price 和和 discount discount 列等敏感信息。列等敏感信息。 例:定义一个视图,其中只含有管例:定义一个视图,其中只含有管理类书籍或计算机应用类书

    9、籍的行,理类书籍或计算机应用类书籍的行,同时含有同时含有booksbooks表中除了表中除了price price 和和 discount discount 列的其他列,隐藏了其他列的其他列,隐藏了其他书籍信息和敏感列的信息。书籍信息和敏感列的信息。 例:定义一个视图,它联接表例:定义一个视图,它联接表 booksbooks和和authorsauthors表以显示作者姓名及其撰表以显示作者姓名及其撰写的书籍。该视图隐藏作者的个人信写的书籍。该视图隐藏作者的个人信息以及著作的财务信息。息以及著作的财务信息。 例:定义一个视图,其中只含有例:定义一个视图,其中只含有每类书籍的平均价格。每类书籍的平

    10、均价格。 2 使用视图的优点和缺点使用视图的优点和缺点(4 4)改进性能)改进性能 通过在视图中通过在视图中存储复杂查询的运算存储复杂查询的运算结果结果并为其他查询提供这些并为其他查询提供这些摘要性的结摘要性的结果果使数据库的使数据库的性能得到提高性能得到提高,视图还具,视图还具备备分割数据分割数据的功能,而且可以把分割后的功能,而且可以把分割后独立的数据放置在不同的计算机上。独立的数据放置在不同的计算机上。 6.2 6.2 创建视图创建视图1 视图的创建视图的创建2 视图定义信息查询视图定义信息查询 (1 1)使用)使用Microsoft SQL Server Microsoft SQL S

    11、erver Management Studio Management Studio管理界面管理界面 (2 2)通过执行系统存储过程)通过执行系统存储过程 查看视图的定义信息查看视图的定义信息 1 视图的创建视图的创建CREATE VIEW . . view_name ( column ,.n ) WITH ENCRYPTION AS select_statement WITH CHECK OPTION 创建的视图的名称创建的视图的名称视图中列的字段名视图中列的字段名对含有对含有CREATE VIEW正文的正文的syscomments表项进行加密表项进行加密 定义视图的定义视图的select语句

    12、语句强制对视图执行的强制对视图执行的所有数据修改语句遵照在所有数据修改语句遵照在定义视图的定义视图的select statement中设置的条件中设置的条件 例例6-26-2:本例建立的是系统中另外一个非:本例建立的是系统中另外一个非常有用的视图常有用的视图book_info_viewbook_info_view,通过这个,通过这个视图,系统可以很容易的从表视图,系统可以很容易的从表book_infobook_info、classclass和和book_statebook_state中查询完整的图书信中查询完整的图书信息,以方便显示给用户进行查看。息,以方便显示给用户进行查看。 use use

    13、 Library_DBLibrary_DBgogoCREATE VIEW CREATE VIEW book_info_viewbook_info_view ASASSELECT SELECT book_info.book_id,book_info.name,book_info.author,book_book_info.book_id,book_info.name,book_info.author,book_info.publishinfo.publish, ,book_info.ISBN,book_info.introduction,book_info.languagbook_info.IS

    14、BN,book_info.introduction,book_info.language,book_info.pricee,book_info.price, ,book_info.pressmark,class.namebook_info.pressmark,class.name AS AS classname,book_state.leftnumclassname,book_state.leftnum, ,book_state.numberbook_state.number, , book_info.class_idbook_info.class_idFROM FROM book_infob

    15、ook_info INNER JOIN INNER JOIN book_statebook_state ON ON book_info.book_idbook_info.book_id = = book_state.book_idbook_state.book_id INNER JOIN class ON INNER JOIN class ON book_info.class_idbook_info.class_id = = class.class_idclass.class_id 2 视图定义信息查询视图定义信息查询(1 1)使用)使用Microsoft SQL Server Microso

    16、ft SQL Server Management StudioManagement Studio管理界面管理界面 运行运行“Microsoft SQL Server Microsoft SQL Server Management StudioManagement Studio管理界面管理界面”,在,在Library_DBLibrary_DB下的视图中选择下的视图中选择dbo.book_info_viewdbo.book_info_view,单击鼠标,单击鼠标右键右键,在弹出的快捷菜单中讯则在弹出的快捷菜单中讯则“属性属性”项,项,便可查看视图便可查看视图book_info_viewbook_i

    17、nfo_view属性属性 2 视图定义信息查询视图定义信息查询(2 2)通过执行系统存储过程查看视图的)通过执行系统存储过程查看视图的定义信息定义信息 可以通过执行系统存储过程可以通过执行系统存储过程sp_helptextsp_helptext查看视图的定义信息查看视图的定义信息 EXEC EXEC sp_helptextsp_helptext objnameobjname用户需要查看用户需要查看的视图名称的视图名称 2 视图定义信息查询视图定义信息查询(2 2)通过执行系统存储过程查看视图的)通过执行系统存储过程查看视图的定义信息定义信息 例:例:EXEC sp_helptext book_

    18、info_view 2 视图定义信息查询视图定义信息查询(2 2)通过执行系统存储过程查看视图的)通过执行系统存储过程查看视图的定义信息定义信息 可以通过运行系统存储过程可以通过运行系统存储过程sp_dependssp_depends来获得视图对象的参照对象和字段来获得视图对象的参照对象和字段 EXEC EXEC sp_dependssp_depends objnameobjname 用户需要查看用户需要查看的视图名称的视图名称 2 视图定义信息查询视图定义信息查询(2 2)通过执行系统存储过程查看视图的)通过执行系统存储过程查看视图的定义信息定义信息 例:例:EXEC sp_depends

    19、book_info_view 2 视图定义信息查询视图定义信息查询(2 2)通过执行系统存储过程查看视图的)通过执行系统存储过程查看视图的定义信息定义信息 例:查询数据库中定义的所有视图例:查询数据库中定义的所有视图 EXEC sp_depends book_info_view 在定义视图时使用加密语句在定义视图时使用加密语句例例6-36-3:通过:通过WITH ENCRYPTIONWITH ENCRYPTION子句创建子句创建一个与例一个与例6-26-2相同的加密视图,将加密相同的加密视图,将加密的新视图取名为的新视图取名为book_info_view2book_info_view2。use

    20、 use Library_DBLibrary_DBgogoCREATE VIEW book_info_view2CREATE VIEW book_info_view2WITH ENCRYPTION WITH ENCRYPTION AS AS SELECT SELECT book_info.book_id,book_info.name,book_info.authorbook_info.book_id,book_info.name,book_info.author, ,book_info.publishbook_info.publish, ,book_info.ISBN,book_info.in

    21、troductionbook_info.ISBN,book_info.introduction, ,book_info.language,book_info.pricebook_info.language,book_info.price, ,book_info.pressmark,class.namebook_info.pressmark,class.name AS AS classname,book_state.leftnumclassname,book_state.leftnum, ,book_state.numberbook_state.number, , book_info.class

    22、_idbook_info.class_idFROM FROM book_infobook_info INNER JOIN INNER JOIN book_statebook_state ON ON book_info.book_idbook_info.book_id = = book_state.book_idbook_state.book_id INNER JOIN class ON INNER JOIN class ON book_info.class_idbook_info.class_id= =class.class_idclass.class_id通过使用通过使用WITH ENCRY

    23、PTION WITH ENCRYPTION 子句,用子句,用户将无法象浏览视图户将无法象浏览视图book_info_viewbook_info_view的的视图定义一样浏览视图视图定义一样浏览视图book_info_view2book_info_view2的视图定义的视图定义6.3 6.3 视图的修改和删除视图的修改和删除1 视图的修改视图的修改2 视图的删除视图的删除 3 通过视图修改数据通过视图修改数据 1 视图的修改视图的修改ALTER VIEW . . view_name ( column ,.n ) WITH ENCRYPTION AS select_statement WITH C

    24、HECK OPTION 例例6-46-4: 对例对例6-46-4创建的视图创建的视图book_info_view2book_info_view2进行修改,将该视图进行修改,将该视图中的记录的字段减少为图书名称、所属中的记录的字段减少为图书名称、所属分类名、剩余库存和总数量。分类名、剩余库存和总数量。use use Library_DBLibrary_DBgogoALTER VIEW book_info_view2ALTER VIEW book_info_view2AS AS SELECT SELECT book_info.namebook_info.name, , class.nameclas

    25、s.name AS AS classname,book_state.leftnum,book_state.numberclassname,book_state.leftnum,book_state.numberFROM FROM book_infobook_info INNER JOIN INNER JOIN book_statebook_state ON ON book_info.book_idbook_info.book_id = = book_state.book_idbook_state.book_id INNER JOIN class ON INNER JOIN class ON b

    26、ook_info.class_idbook_info.class_id = = class.class_idclass.class_id2 视图的删除视图的删除DROP VIEW . view_name ( column ,.n ) 要删除的要删除的视图名视图名例例6-56-5:删除:删除Library_DBLibrary_DB数据库中的视图数据库中的视图book_info_view2book_info_view2。DROP VIEW dbo.book_info_view2DROP VIEW dbo.book_info_view23 通过视图修改数据通过视图修改数据在视图中修改的数据操作都将导

    27、致对基表数在视图中修改的数据操作都将导致对基表数据的修改据的修改在通过视图修改数据时应在通过视图修改数据时应注意注意以下几个问题:以下几个问题:l 不能对某些特别列进行操作;不能对某些特别列进行操作;l 不能在视图中修改在视图中没有参照的列;不能在视图中修改在视图中没有参照的列;l 不能在含有视图中没有参照的列的表中利用视不能在含有视图中没有参照的列的表中利用视图作插入操作;图作插入操作;l 不能影响多于一个的基表;不能影响多于一个的基表;l 如果某一视图在定义中指定了如果某一视图在定义中指定了WITH CHECK OPTION选项,则进行数据修改时将进行验证。选项,则进行数据修改时将进行验证

    28、。例例6-66-6:通过:通过WITH CHECK OPTIONWITH CHECK OPTION子句将子句将强制对视图所作的所有修改都满足定义强制对视图所作的所有修改都满足定义视图的视图的select _statementselect _statement中指定的条中指定的条件。件。CREATE VIEW lendbook2CREATE VIEW lendbook2AS SELECTAS SELECTbook_id,borrower_id,lend_date,back_datebook_id,borrower_id,lend_date,back_datefrom from lend_list

    29、lend_listwhere where book_idbook_id=0284=0284WITH CHECK OPTIONWITH CHECK OPTION通过查询语句通过查询语句: :use use Library_DBLibrary_DBgogoSELECT SELECT book_id,borrower_id,lend_date,back_datebook_id,borrower_id,lend_date,back_dateFROM FROM lend_listlend_listWHERE WHERE book_idbook_id=0284=0284通过通过UPDATEUPDATE子句

    30、将子句将borrower_idborrower_id为为970890970890的借阅记录的借阅记录的的back_dateback_date由原来的由原来的NULLNULL改为改为2010-4-222010-4-22。UPDATE lendbook2UPDATE lendbook2SET SET back_dateback_date=2010-4-22=2010-4-22WHERE WHERE borrower_idborrower_id = 970890 = 970890通过通过UPDATEUPDATE子句将子句将broorwer_idbroorwer_id为为981123981123的借书记录的借书记录中的图书编号中的图书编号book_idbook_id由原来的由原来的02840284改为改为0234 0234 。UPDATE lendbook2UPDATE lendbook2SET SET book_idbook_id=0234=0234WHERE WHERE borrower_idborrower_id=981123=981123

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《数据库应用基础》课件-第六章-视图(1).ppt
    链接地址:https://www.163wenku.com/p-2146457.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库