第5章 GaussDB(for MySQL)视图操作实验 视图是一个功能强大的数据库对象,利用视图可以实现对数据库中数据的浏览、筛选、排序、检索、统计和更新等操作,可以更高效率地对数据库中的数据进行加工处理。 本章的主要实验内容包括: (1) 创建视图; (2) 修改视图; (3) 删除视图; (4) 利用视图进行数据更新。 5.1创建视图 在GaussDB(for MySQL)中,要根据已知数据库表创建视图,可利用“管理控制台”和SQL语句两种方法来实现。 5.1.1利用“管理控制台”创建视图 〖*4/5〗1. 实验目标 根据表5-1所示的数据库表student的结构、表5-2所示的数据库表course的结构和表5-3所示的数据库表score的结构,创建视图v_student_course_score,其中包含学号、学生姓名、课程名称和成绩字段。 第5章GaussDB(for MySQL)视图操作实验 表5-1数据库student表 学号姓名性别出 生 年 月籍贯班 级 编 号 190101江珊珊女2000-01-09内蒙古A1011901 190102刘东鹏男2001-03-08北京A1011901 190115崔月月女2001-03-17黑龙江A1011901 190116白洪涛男2002-11-24上海A1011901 190117邓中萍女2001-04-09辽宁A1011901 190118周康乐男2001-10-11上海A1011901 190121张宏德男2001-05-21辽宁A1011901 190132赵迪娟女2001-02-04北京A1011901 200401罗笑旭男2002-12-23四川A1022004 200407张思奇女2002-09-19吉林A1022004 200413杨水涛男2002-01-03河北A1022004 200417李晓薇女2002-04-10上海A1022004 200431韩璐惠女2001-06-16河南A1022004 表5-2数据库course表 课 程 编 号课 程 名 称学时学分学期 01-01数据结构5422 01-02软件工程7234 01-03数据库原理7233 01-04程序设计5421 02-01离散数学5422 02-02概率统计5421 02-03高等数学7231 表5-3数据库score表 学号课 程 编 号成绩 19011501-0197 19011501-0289 19011501-0390 19011501-0491 19013201-0170 19013201-0266 19013201-0356 19013201-0460 19010101-0190 19010101-0276 19010101-0387 19010101-0494 2. 操作步骤 利用GaussDB(for MySQL)“管理控制台”,创建视图。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“视图”选项,进入“视图管理”窗口,如图5-1所示。 图5-1“管理视图”窗口 (7) 在“视图管理”窗口单击“新建视图”按钮,打开“新建视图”选项卡,如图5-2所示。 图5-2“新建视图”选项卡 (8) 在“新建视图”选项卡中,首先输入视图名称v_student_course_score,其他设置非必选项,然后在“视图定义”区域输入如下SQL语句: SELECT S.student_id,student_name,course_name,score FROM student S,course C,score SC WHERE S.student_id=SC.student_id and C.course_id=SC.course_id; 结果如图5-3所示。 图5-3新建视图v_student_course_score (9) 在“新建视图”选项卡中单击“立即创建”按钮,打开“请确认视图定义脚本”对话框,如图5-4所示。 图5-4“请确认视图定义脚本”对话框 (10) 在“请确认视图定义脚本”对话框中单击“执行脚本”按钮,视图创建完成后,可以看到“修改视图”选项卡如图5-5所示。 图5-5“修改视图”选项卡 (11) 在“修改视图”选项卡中,如果没有修改内容,则单击“×”按钮,视图创建完成后,返回“库管理”选项卡中,如图5-6所示。 图5-6“库管理”选项卡 (12) 在“库管理”选项卡中,选中新创建的视图v_student_course_score,单击“打开视图”按钮,显示新建视图的数据,如图5-7所示。 图5-7视图v_student_course_score 5.1.2利用SQL语句创建视图 〖*4/5〗1. 实验目标 根据表5-4所示的数据库表school结构和表5-5所示的数据库表department的结构,创建视图v_school_department,用于显示学校和院系信息,其包括学院编号、学院名称、系编号、系名称和系主任等信息。 表5-4数据库表school 学 院 编 号学 院 名 称院长电话地址 A计算机科学沈存放010-86782098A-JSJ B电子信息与电气工程张延俊010-85764325B-DZXDQG C生命科学于博远010-86907865C-SMKJ D化学化工杨晓宾010-86878228D-HXHG E数学科学赵石磊010-81243989E-SXKX F物理与天文曹朝阳010-80758493F-WLTW H媒体与设计王佳佳010-81794522H-MTSJ 表5-5数据库表department 系编号系名称系主任教 师 人 数班 级 个 数学 院 编 号 A101软件工程李明东208A A102人工智能赵子强164A B201信息安全王月明348B B202微电子科学张小萍238B C301生物信息刘博文234C C302生命工程李旭日224C E501应和数学陈红萧338E E502计算数学谢东来238E 2. 操作步骤 利用SQL语句创建视图。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“SQL窗口”按钮,打开“SQL查询”选项卡。 (7) 在“SQL查询”选项卡的SQL编辑区,输入如下SQL语句: CREATE VIEW v_school_department AS SELECT school.school_id,school_name,department_id,department_name,department_dean FROM school,department WHERE school.school_id=department.school_id; 在“SQL查询”选项卡中,单击“执行SQL(F8)”按钮,结果如图5-8所示。 图5-8执行SQL语句 (8) 打开“库管理”选项卡,如图5-9所示。 图5-9“库管理”选项卡 (9) 在“库管理”选项卡中,选择新创建的视图v_school_department,单击“打开视图”按钮,显示新建视图的数据,如图5-10所示。 图5-10视图v_school_department 5.2查看视图数据 视图是数据库表的“再生”表,查看视图与查看数据库表的操作一样。 1. 实验目标 利用GaussDB(for MySQL)“管理控制台”,查看已有的视图v_school_department中的数据。 2. 操作步骤 利用GaussDB(for MySQL)“管理控制台”,查看视图。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中,单击“视图”选项,进入“视图管理”窗口,如图5-11所示。 图5-11视图列表 (7) 在“库管理”选项卡中,选择已有视图v_school_department,单击“打开视图”按钮,显示视图的数据,如图5-12所示。 图5-12查看视图v_school_department 5.3查看视图结构 查看视图的结构,有两种方法: 一是利用GaussDB(for MySQL)“管理控制台”进行操作; 二是利用SQL语句直接查看。 5.3.1利用“管理控制台”查看视图结构 〖*4/5〗1. 实验目标 利用GaussDB(for MySQL)“管理控制台”,查看已有的视图v_school_department中的结构。 2. 操作步骤 利用GaussDB(for MySQL)“管理控制台”,查看视图v_school_department的结构。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“视图”选项,进入“视图管理”窗口。 (7) 在“视图管理”窗口中选择视图v_school_department,单击 “修改视图”按钮,打开“修改视图”选项卡,即可查看视图结构,如图5-13所示。 图5-13“修改视图”选项卡 5.3.2利用SQL语句查看视图结构 〖*4/5〗1. 实验目标 利用SQL语句查看视图v_student_course_score的结构。 2. 操作步骤 利用SQL语句查看视图结构。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“SQL窗口”按钮,打开“SQL查询”选项卡。 (7) 在“SQL查询”选项卡的SQL编辑区,输入如下SQL语句: DESCRIBE v_student_course_score; 在“SQL查询”选项卡中,单击“执行SQL(F8)”按钮,结果如图5-14所示。 图5-14查看视图结构 5.4修改视图结构 视图结构有时会根据需要发生变化,尽管视图已经创建完成,但也可以修改。 1. 实验目标 利用GaussDB(for MySQL)“管理控制台”,修改视图v_school_department结构。具体的修改内容是: 在原有的视图中,增加两个字段teacher_num和class_num。 2. 操作步骤 利用GaussDB(for MySQL)“管理控制台”修改视图。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“视图”选项,进入“视图管理”窗口。 (7) 在“视图管理”窗口中选择视图v_school_department,单击 “修改视图”按钮,打开“修改视图”选项卡,查看视图结构,如图5-15所示。 (8) 在“修改视图”选项卡中,输入如下SQL语句: select'xinhua_gaussDB'.'school'.'School_id' AS 'school_id', 'xinhua_gaussDB'.'school'.'School_name' AS 'school_name', 'xinhua_gaussDB'.'department'.'Department_id' AS 'department_id', 'xinhua_gaussDB'.'department'.'Department_name' AS 'department_name', 'xinhua_gaussDB'.'department'.'Department_dean' AS 'department_dean', 'xinhua_gaussDB'.'department'.'Teacher_num' AS 'Teacher_num', 'xinhua_gaussDB'.'department'.'Class_num' AS 'Class_num' from 'xinhua_gaussDB'.'school' join 'xinhua_gaussDB'.'department' where ('xinhua_gaussDB'.'school'.'School_id' = 'xinhua_gaussDB'.'department'.'School_id') 图5-15“修改视图”选项卡 如图5-16所示。 图5-16修改视图v_school_department (9) 在“修改视图”选项卡中,单击“立即修改”按钮,打开“请确认视图定义脚本”对话框,如图5-17所示,单击“执行脚本”按钮,完成视图修改。 图5-17“请确认视图定义脚本”对话框 5.5删除视图 视图具有表的外观,可像表一样对其进行存取,但不占据数据存取的物理存储空间,视图并不真正存在,数据库中只是保存视图的定义,因此不会出现数据冗余。基于这个特性,有关删除视图的操作较少发生,只是在数据库模式发生改变时,才进行视图的清理。 5.5.1利用“管理控制台”删除视图 〖*4/5〗1. 实验目标 利用GaussDB(for MySQL)“管理控制台”,删除已有的视图v_student。 2. 操作步骤 利用GaussDB(for MySQL)“管理控制台”删除视图。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“视图”选项,进入“视图管理”窗口。 (7) 在“视图管理”窗口中选择视图v_student,单击 “删除视图”按钮,打开的“删除视图”对话框如图5-18所示。 图5-18“删除视图”对话框 (8) 在“删除视图”对话框中单击“是”按钮,完成删除视图操作,如图5-19所示。 图5-19“删除视图”消息框 5.5.2利用SQL语句删除视图 〖*4/5〗1. 实验目标 利用SQL语句删除视图v_school_department。 2. 操作步骤 利用SQL语句删除视图结构。 操作步骤如下: (1) 打开浏览器,进入“华为云-账号登录”窗口。 (2) 在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。 (3) 在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。 (4) 在“控制台”窗口选择“云数据库 GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。 (5) 在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。 (6) 在“库管理”选项卡中单击“SQL窗口”按钮,打开“SQL查询”选项卡。 (7) 在“SQL查询”选项卡的SQL编辑区,输入如下SQL语句: DROP VIEW v_school_department; 在“SQL查询”选项卡中,单击“执行SQL(F8)”按钮,结果如图5-20所示。 图5-20删除视图执行结果