第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删除视图执行结果