MySQL数据库基础实例教程(第3版)课件 第六章 数据视图_第1页
MySQL数据库基础实例教程(第3版)课件 第六章 数据视图_第2页
MySQL数据库基础实例教程(第3版)课件 第六章 数据视图_第3页
MySQL数据库基础实例教程(第3版)课件 第六章 数据视图_第4页
MySQL数据库基础实例教程(第3版)课件 第六章 数据视图_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章数据视图项目知识要点知识能力目标学时任务1创建视图1视图概念2创建视图3查询视图任务2操作视图1通过视图操作数据图2修改视图定义3删除视图【典型工作任务】创建视图、操作视图【技能要求】1使用MySQL命令创建和操作视图2使用图形工具创建和操作视图【知识要求】1视图的作用与使用2修改及删除视图的SQL语句2项目实训LibraryDB数据视图2项目知识要点与目标视图概述视图是数据库的用户使用数据库的窗口。系统角度:视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表用户角度:视图是从一个或多个表(或视图)导出的表。可以像表一样被查询、修改、删除和更新。基本表优点:(1)简化数据查询和处理。(2)屏蔽数据库的复杂性。(3)简化用户权限的管理。(4)便于数据共享。视图任务一创建视图视图是数据库的用户使用数据库的观点。例如,对于一个学校,其学生的情况存于数据库的一个或多个表中,而作为学校的不同职能部门,所关心的学生数据的内容是不同的。即使是同样的数据,也可能有不同的操作要求,于是就可以根据他们的不同需求,在物理的数据库上定义他们对数据库所要求的数据结构,这种根据用户观点所定义的数据结构就是视图。基本表基本表用户一视图基本表用户二视图创建视图语法格式:【例】创建视图b_s,包括所销售图书的书名和订购册数。CREATEVIEW视图名[(列名列表)]ASselect语句[WITHCHECKOPTION]【例】创建视图s_avg,包括书名(列名为name)和平均订购册数(列名为sale_avg)。【例】查找平均订购册数大于5本的图书。SELECT*FROMs_avgWHEREsale_avg>5;CREATEVIEWb_sASSELECT书名,订购册数FROMBookJOINSellONbook.图书编号=Sell.图书编号;CREATEVIEWs_avg(name,sale_avg)AS

SELECT书名,avg(订购册数)FROMb_sGROUPBY书名;创建视图举例CREATEVIEWjsj_sell

ASSELECT订单号,Sell.图书编号,书名,订购册数FROMBook,SellWHEREBook.图书编号=Sell.图书编号ANDBook.图书类别='计算机’WITHCHECKOPTION;【例】创建Bookstore数据库上的jsj_sell视图,包括计算机类图书的销售的订单号,图书编号,书名,订购册数等情况。要保证对该视图的订单修改都要符合计算机类这个条件。创建视图举例【例】查找平均订购册数大于5本的订购客户的用户号和平均订购册数。CREATEVIEWkh_avg(userID,order_avg)ASSELECT用户号,AVG(订购册数)FROMSellGROUPBY用户号;我们可以首先创建客户平均订购视图kh_avg,包括用户号(在视图中列名为userID)和平均订购册数(在视图中列名为order_avg)。创建客户平均订购视图kh_avg:再对kh_avg视图进行查询。SELECT*FROMkh_avgWHEREorder_avg>5;操作视图(1)聚合函数;(2)DISTINCT关键字;(3)GROUPBY子句;(4)ORDERBY子句;(5)HAVING子句;(6)UNION运算符;(7)位于选择列表中的子查询;(8)FROM子句中包含多个表;(9)SELECT语句中引用了不可更新视图;(10)WHERE子句中的子查询,引用FROM子句中的表。通过视图更新基本表数据,也就是在视图中使用INSERT、UPDATE或DELETE等语句操作基本表。操作视图必须保证视图是可更新视图,即视图中的行和基本表中的行之间必须具有一对一的关系。如果视图包含下述结构中的任何一种,那么它就是不可更新的:通过视图插入数据2.插入数据(‘TP.0837’,‘计算机’,‘Office应用实例’,‘张拾怡','人民邮电出版社’,'2023-10-21',34.5,NULL,NULL,NULL)。使用INSERT语句通过视图向基本表插入数据【例】创建视图jsj_book,视图中包含计算机类图书的信息,并向jsj_book视图中插入一条记录:CREATEORREPLACEVIEWjsj_bookASSELECT*FROMBookWHERE图书类别='计算机'

WITHCHECKOPTION;首先创建视图jsj_book:INSERTINTOjsj_bookVALUES('TP.0837','计算机','Office应用实例','张拾怡',

'人民邮电出版社','2023-10-21',34.5,NULL,NULL,NULL);接下来插入记录:通过视图插入数据限制注意:当视图所依赖的基本表有多个时,不能向该视图插入数据,因为这将会影响多个基本表。插入的数据项应该包含基本表中所有不能为空的列。当创建视图时使用了WITHCHECKOPTION,插入的记录必须满足WHERE子句指定的条件。通过视图修改数据当视图所依赖的基本表有多个时,不能向该视图插入数据,因为这将会影响多个基本表。对INSERT语句还有一个限制:SELECT语句中必须包含FROM子句中指定表的所有不能为空的列。使用UPDATE语句可以通过视图修改基本表的数据UPDATEjsj_bookSET单价=单价*(1-0.05);【例】将jsj_book视图中所有单价降低5%。该语句实际上是将jsj_book视图所依赖的基本表Book中所有计算机类图书的单价也都降低了5%。视图修改数据举例【例】将jsj_sell视图中图书编号为TP.2525的书名改为“PHP网站制作”,订单号为5的订购册数改为100。改书名:

UPDATEjsj_sellSET书名='PHP网站制作'WHERE图书编号='TP.2525’;改订购册数:

UPDATEjsj_sellSET订购册数=100WHERE订单号=5;若一个视图依赖于多个基本表,则一次修改该视图只能变动一个基本表的数据。通过视图删除数据使用DELETE语句可以通过视图删除基本表的数据【例】删除jsj_book中“人民邮电出版社”的记录。

DELETEFROMjsj_bookWHERE出版社='人民邮电出版社';对依赖于多个基本表的视图,不能使用DELETE语句。例如,不能通过对jsj_sell视图执行DELETE语句而删除与之相关的基本表Book及Sell表的数据。修改视图定义使用ALERT语句可以对已有视图的定义进行修改。语法格式:ALTERVIEW视图名[(列名列表)]ASselect语句

[WITH[CASCADED|LOCAL]CHECKOPTION]【例】将jsj_book视图修改为只包含计算机类图书的图书编号、书名和单价。ALTERVIEWjsj_bookAS

SELECT图书编号,书名,单价FROMBook

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论