版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章视图学习目标:理解视图的基本概念,掌握视图的创建、修改和删除方法,以及利用视图查询操作的方法。10.1概述视图(View)是由一个或多个表及其他视图中通过SELECT语句导出的虚拟表,是根据需求重新定义表的逻辑结构,同真实的表一样,视图包含一系列带有名称的列和记录。10.2创建视图10.2.1创建视图的语句CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER={user|CURRENT_USER}][SQLSECURITY{DEFINER|INVOKER}]VIEWview_name[(column_name1,column_name2,…)]ASselect_statement[WITH[{CASCADED|LOCAL}]CHECKOPTION];10.2创建视图10.2.2创建视图的实例1.在单表上创建视图【例10-1】在数据库student_db中,创建view_student_5102视图,包括学生的学号、姓名、性别、班号,且都是班号为20235102的学生,要保证对该视图的修改都符合班号为20235102这个条件。CREATEVIEWview_student_5102(学号,姓名,性别,班号)ASSELECTStudentID,StudentName,Sex,ClassIDFROMstudentWHEREClassID='20235102'WITHCHECKOPTION;10.2创建视图2.在多个表上创建视图【例10-2】创建名为view_student_class的学生名单视图,该视图包含StudentID、StudentName、Sex、Birthday、ClassID、ClassName,所有学生记录。SELECTstudent.StudentID,StudentName,Sex,Birthday,student.ClassID,ClassNameFROMstudentINNERJOINclassONstudent.ClassID=class.ClassID;CREATEVIEWview_student_class(StudentID,StudentName,Sex,Birthday,ClassID,ClassName)ASSELECTstudent.StudentID,StudentName,Sex,Birthday,student.ClassID,ClassNameFROMstudentINNERJOINclassONstudent.ClassID=class.ClassID;SELECT*FROMview_student_class;10.2创建视图【例10-3】建立一个计算每个班平均成绩的视图view_class_avg,包括班级名和平均成绩。编写查询班号、平均成绩的SELECT语句,其语句和运行结果如下:SELECTClassID,AVG(Score)FROMscore,studentWHEREscore.StudentID=student.StudentIDGROUPBYClassID;10.2创建视图SELECTstudent.ClassID,class.ClassName,AVG(Score)FROMscore,student,classWHEREscore.StudentID=student.StudentIDANDstudent.ClassID=class.ClassIDGROUPBYClassID;10.2创建视图CREATEORREPLACEVIEWview_class_avg(班级号,班级名,平均成绩)ASSELECTstudent.ClassID,class.ClassName,AVG(Score)FROMscore,student,classWHEREscore.StudentID=student.StudentIDANDstudent.ClassID=class.ClassIDGROUPBYClassID;10.2创建视图3.在已有视图上创建视图【例10-4】在view_student_class视图上创建视图view_student_20235201,要求该视图包含view_student_class视图上的所有列,班级是“人工智能1”的学生名单,并且要求以后对该视图记录的修改都必须符合班级是“人工智能1”的条件。CREATEORREPLACEVIEWview_student_20235201ASSELECT*FROMview_student_classWHEREClassName='人工智能1'WITHCHECKOPTION;10.2创建视图10.3查看视图定义和查询视图记录10.3.1查看视图定义1.使用SHOWCREATEVIEW语句查看已有视图的定义(结构)SHOWCREATEVIEWview_name;2.使用DESCRIBE语句查看视图定义DESCRIBE|DESCview_name;3.查询系统数据库information_schema的views表SELECT*FROMinformation_schema.viewsWHEREtable_name='视图名';【例10-5】查看view_student_5102的视图定义。SHOWCREATEVIEWview_student_5102;DESCview_student_5102;SELECT*FROMinformation_schema.viewsWHEREtable_name='view_student_5102';10.3查看视图定义和查询视图记录10.3.2查询视图记录1.使用视图查询记录【例10-6】通过view_student_class视图查询班名为“人工智能1”的记录。SQL语句和运行结果如下:SELECT*FROMview_student_classWHEREClassName='人工智能1';10.3查看视图定义和查询视图记录2.对视图进行统计计算【例10-7】通过view_student_class视图统计每个班级的人数。SELECTClassName班名,COUNT(*)人数FROMview_student_classGROUPBYClassName;10.3查看视图定义和查询视图记录10.4更新视图10.4.1更新视图的说明不是所有的视图都可以更新,只有满足更新条件的视图才可以更新,否则会导致错误。所以,尽量不要更新视图。10.4.2更新视图的实例1.使用INSERT语句向视图中插入记录【例10-8】通过view_student_5102视图,向学生的基本表中添加一条记录。INSERTINTOview_student_5102(学号,姓名,性别,班号)VALUES('2023510107','胡方','男','20235102');SELECT*FROMview_student_5102;
SELECT*FROMstudentWHEREClassID='20235102';INSERTINTOview_student_5102VALUES('2023510108','范芳','女','20235101');10.4更新视图2.使用UPDATE语句更新视图记录【例10-9】通过view_student_class视图将“胡方”的生日改为2003-04-22。更新记录的SQL语句如下:UPDATEview_student_classSET生日='2003-04-22'WHERE姓名='胡方';10.4更新视图3.使用DELETE语句删除视图记录【例10-10】通过view_student_class视图删除“胡方”记录。使用DELETE语句删除指定记录,SQL语句如下:DELETEFROMview_student_classWHERE姓名='胡方';【例10-11】通过view_student_5102视图删除“胡方”记录。SQL语句如下:DELETEFROMview_student_5102WHERE姓名='胡方';10.4更新视图10.5修改视图和删除视图10.5.1修改视图ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEWview_name[(column_name1,column_name2,…)]ASselect_statement[WITH[{CASCADED|LOCAL}]CHECKOPTION];【例10-12】修改view_student_class视图,把视图的列名改为“学号”、“姓名”、“性别”、“生日”、“班号”和“班名”,包含所有学生记录。ALTERVIEWview_student_class(学号,姓名,性别,生日,班号,班名)ASSELECTstudent.StudentID,StudentName,Sex,Birthday,student.ClassID,ClassNameFROMstudentINNERJOINclassONstudent.ClassID=class.C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【优化方案】2022届(新课标)地理大一轮复习配套文档:第六章-人口的变化-章末提升三步曲
- 【全程复习方略】2021年高考物理二轮专题辅导与训练:高效演练-6.12第12-讲-电学实验
- 【名师一号】2021年新课标版物理选修3-5-双基限时练20-原子核
- 2022成都市高考英语一轮阅读理解选练(11)及答案
- 【名师一号】2020-2021学年高中地湘教版选修5-双基限时练6
- 2021成都市高考英语阅读理解专题选练及答案7
- 2021春走向高考湘教版地理高三一轮复习练习:必修1-第1单元-宇宙中的地球-第1讲
- 【导与练】2021高考地理总复习课时作业:第7章-第2课时-城市化
- 【学练考】2021-2022学年高二人教版化学选修4练习册:4.3.2电解原理的应用-
- 二年级数学计算题专项练习
- 【全国】2023年4月自学考试11742商务沟通方法与技能真题
- HR尽职调查报告
- 自来水厂水厂自控方案
- 树立总体国家安全观第框认识总体国家安全观 全省一等奖
- 电厂超滤讲解课件
- 2023-2024学年浙江省义乌市小学语文五年级期末自测考试题附参考答案和详细解析
- DB14∕T 2248-2020 煤矿安全风险分级管控和隐患排查治理双重预防机制实施规范
- 安全生产月知识竞赛PPT模板
- 反循环钻孔灌注桩首件施工方案
- 《跟随佐藤学做教育 学习共同体的愿景与行动》读书笔记思维导图PPT模板下载
- 公司报检单模板
评论
0/150
提交评论