教学材料《MySQL数据库》4-6视图_第1页
教学材料《MySQL数据库》4-6视图_第2页
教学材料《MySQL数据库》4-6视图_第3页
教学材料《MySQL数据库》4-6视图_第4页
教学材料《MySQL数据库》4-6视图_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第4章问题导入【思考】查询如何保存?视图01视图的概念02视图基本的操作03通过视图操作数据第4章01视图概念概念:视图是用户可以从一个特定的角度来查看数据库中的数据,是从基本表中导出来的虚表,可以像操作基本表一样操作视图。第4章01视图的概念优点:(1)简化查询语句经常使用的查询定义为视图,避免大量重复的操作(2)安全性查询和修改他们所能见到的数据(3)屏蔽数据库的复杂性

视图可以屏蔽表结构变化带来的影响第4章02视图的基本操作一、创建视图CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER={USER|CURRENT_USER}][SQLSECURITY{DEFINER|INVOKER}]VIEW视图名[(列名,…)]ASSELECT语句[WITH[CASCADED|LOCAL]CHECKOPTION]第4章02视图的基本操作子句说明:(1)CREATE[ORREPLACE]VIEW视图名[(列名,…)]

新建或替换原来视图

(2)ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]UNDEFINED:自动选择算法,默认MERGE:视图定义和查询该视图的语句合并

TEMPTABLE:将查询结果放入临时表,然后用临时表查询第4章02视图的基本操作子句说明:(3)DEFINER={user|CURRENT_USER}]

定义视图的用户(4)SQLSECURITY{DEFINER|INVOKER}]

视图的安全控制DEFINER:定义者指定的用户权限执行INVOKER:调用视图的用户的权限来执行第4章02视图的基本操作子句说明:(5)WITH[CASCADED|LOCAL]CHECKOPTION

检查条件CASCADED:满足所有视图和表定义的条件LOCAL:满足该视图本身定义的条件第4章02视图的基本操作【案例1】创建视图V1,查询student表中“化学工程系”的sid,sname,sex,department,年龄。第4章02视图的基本操作DELIMITER$$CREATEVIEWstu`.`v1`(sid,sname,sex,department,age)ASSELECTsid,sname,sex,department,YEAR(NOW())-YEAR(birth)FROMstudentWHEREdepartment='化学工程系’$$DELIMITER;第4章02视图的基本操作【案例2】创建多表视图V2,包含sid,sname,cno,cname,result字段。第4章02视图的基本操作DELIMITER$$CREATEVIEWv2ASSELECTa.sid,a.sname,o,ame,b.resultFROMstudenta,scoreb,coursecWHEREa.sid=b.sidANDo=o$$DELIMITER;第4章02视图的基本操作二、查看视图(1)DESC[RIBE]视图名;(2)SHOWCREATEVIEW视图名第4章02视图的基本操作三、修改视图1.CREATEORREPLACEVIEW……2.ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER={USER|CURRENT_USER}][SQLSECURITY{DEFINER|INVOKER}]VIEW视图名[列…]ASSELECT语句[WITH[CASCADE|LOCAL]CHECKOPTION]第4章02视图的基本操作四、删除视图DROPVIEW视图名第4章03通过视图操作基本表数据一、查询数据【案例3】查询“化学工程系”的女生的学号,姓名,性别,系部,年龄。Select*fromv1wheresex=’女’;第4章03通过视图操作基本表数据二、插入数据【案例4】通过v1插入如下记录8888,张敏敏,女,信息工程系。Insertintov1(sid,sname,sex,department)Values(‘8888’,’张敏敏’,’女’,’信息工程系’);

第4章03通过视图操作基本表数据二、插入数据【案例5】通过v2插入如下记录9999,张萌萌,01,大学英语,90。Insertintov2Values(‘9999’,’张萌萌’,’01’,’大学英语’,90);

第4章03通过视图操作基本表数据二、插入数据【案例6】通过v2往course表插入如下记录,cno和cname值分别如下:55,人工智能。Insertintov2(cno,cname)Values(‘55’,‘人工智能’);第4章03通过视图操作基本表数据【注意】插入失败1.定义视图的select语句后面有数学表达式或聚合函数

2.操作的视图定义在多个表上;3.没有满足视图定义的基本条件4.定义视图的select语句中使用DISTINCT,UNION,TOP,GROUPBY等短语

第4章02视图的基本操作【案例7】修改视图v1,去掉计算列age,查询全体学生的学号,姓名,性别。DELIMITER$$ALTERVIEWv1(sid,sname,sex,department)ASSELECTsid,sname,sex,departmentFROMstudent$$DELIMITER;第4章03通过视图操作基本表数据三、修改数据【案例8】通过v1修改记录,将8888的学号修改为6688。Updatev1Setsid=’6688’Wheresid=’8888’;第4章03通过视图操作基本表数据四、删除数据【案例9】通过v1将学号为“6688”的记录删除。Deletev1wheresid=’6688’;第4章03通过视图操作基本表数据五、WITHCHECKOPTION使用【案例10】新建视图v3,查询score表中result在70分以上的的sid,cno,result,不启用检查约束;通过v3视图插入如下记录:0306,01,60

第4章03通过视图操作基本表数据DELIMITER$$CREATEVIEWv3AS(SELECTsid,cno,resultFROMscoreWHEREresult>=70);DELIMITER;第4章03通过视图操作基本表数据DELIMITER$$CREATEVIEWv3AS(SELECTsid,cno,resultFROMscoreWHEREresult>=70);DELIMITER;插入记录:INSERTINTOV3VALUES('0306','01',60);第4章03通过视图操作基本表数据五、WITHCHECKOPTION使用【案例11】新建视图v4,查询v3中result在90分以下的sid,cno,result,并使用CASCADED检查约束;通过v4视图完成记录添加:(1)0306,02,60;(2)0306,02,80;第4章03通过视图操作基本表数据DELIMITER$$CREATEVIEWv4ASSELECTsid,cno,result,FROMv3WHERE(result<=90)WITHCASCADEDCHECKOPTION$$DELIMITER;第4章03通过视图操作基本表数据Insertintov4Values(‘0306’,’02’,60);Insertintov4Values(‘0306’,’02’,80);第4章03通过视图操作基本表数据五、WITHCHECKOPTION使用【案例12】新建视图v5,查询v3中result在90分以下的sid,cno,result,并使用local检查约束。通过v5视图完成记录添加:(1)0306,03,95;(2)0306,03,60;第4章03通过视图操作基本表数据DELIMITER$$CREATEVIEWv5ASSELECTsid,cno,result,FROMv3WHERE(result

温馨提示

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

最新文档

评论

0/150

提交评论