内容正文:
8.2 MySQL索引与视图
---视图
数据库原理与应用技术--MySQL
同步精品课堂
河北科学技术出版社
教学目标
一
掌握创建视图的方法
掌握查看视图的方法
了解视图的概念和作用
掌握维护视图和删除视图的方法
01
02
03
04
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、视图的作用
2、视图的相关命令
教学重点
视图与索引的区别
教学难点
导入新课
三
讨论:
一本书的目录可以帮助我们快速的查找到我们想要的信息,那么在数据库中,我们是如何方便快捷地从数据库中查询所需数据?
任务一
1
认识视图
新知讲授
四
⊙视图概述
➽ 视图概述
使用SQL语句查询数据时,查询结果会直接输出到客户端并且不会被保存。若需要多次查询相同的数据,可以将查询的定义封装成视图,以简化查询操作。
视图是虚表,存储的内容是SQL语句,其关联的数据在视图被使用时动态生成,数据随着基本表的变化而变化。
视图就像一个窗口,用户只需要关心视图窗口提供的数据即可。
任务二
1
创建视图
新知讲授
四
⊙认识视图
➽ 1、视图
视图是从一个或多个表(或视图)中导出来的数据库对象,视图可以像表一样使用。但数据库中仅存储视图的定义,不存储视图的数据,视图是基于基础表导出的虚表。视图定义后,可以像操作基本表一样进行查询、添加、修改和删除操作。
1、简单性:视图简化了用户对数据的查询和处理;
2、安全性:通过视图可以更方便地进行权限控制;
3、逻辑数据独立性:视图可以屏蔽基本表的表结构变化带来的影响;
➽ 视图的优点和作用
新知讲授
四
⊙创建视图
➽ 1、使用Navicate创建视图
➽ 2、使用命令CREATE VIEW
基本语法形式如下:
CREATE VIEW 视图名[(列1[,列2,....n ])]
AS
SELECT 语句
[WITH [CASCADED | LOCAL ] CHECK OPTION ] ;
使用Navicate等图形工具,在对象管理器中选中视图节点,单击“新建视图”按钮,打开“视图创建工具”窗口,然后在图形界面中添加相应的表并选择相关字段即可定义视图。
新知讲授
四
⊙创建视图
说明:
1、视图名应符合标识符的命令规则;
2、(列1[,列2,....n ])用于指定视图中各列的名称,这里指定的列名与SELECT语句结果集的列一一对应;
3、SELECT语句用于定义视图,SELECT语句中可以使用多个表或其他视图;
4、[WITH [CASCADED | LOCAL ] CHECK OPTION ] 为可选参数,表示要保证在该视图的权限范围之内更新视图。其中CASCADED是默认值,表示更新视图时要满足所有相关视图和表的条件。LOCAL表示更新视图时要满足该视图本身定义的条件。
新知讲授
四
⊙创建视图
➽ 实例1:创建名为view_teacher的视图,用来显示教师年龄信息,列出工号、姓名和年龄。
MySQL语句如下:
CREATE VIEW view_teacher(工号,姓名,年龄)
AS
SELECT TeaID, Teaname, Age FROM teacher;
说明:
视图的命令必须遵守命令规则,且不能与表名同名,视图命名建议以”view_”开头。
新知讲授
四
⊙创建视图
➽ 实例2:创建学生成绩view_xscj的视图,用来显示学生学号,姓名,课程号及分数信息,并按学号升序排序。
MySQL语句如下:
CREATE VIEW view_xscj(学号,姓名,课程号,分数)
AS
SELECT SCORE.Stuid , Stuname, Cno,Grade FROM SCORE JOIN student ON
SCORE.Stuid=student.Stuid ORDER BY SCORE.Stuid;
任务三
1
查看视图
新知讲授
四
⊙查看视图
视图定义好后,可以像使用基本表查询数据一样通过视图查询数据,也可以查看视图的基本信息、结构信息和定义文本。以下可以通过三类语句来进行查看。
➽1、通过SHOW TABLE STATUS语句查看视图的基本信息
基本语法形式如下:
SHOW TABLE STATUS LIKE ‘视图名’ ;
➽ 2、使用DESCRIBE或DESC语句查看视图的结构信息
基本语法形式如下:
DESCRIBE ‘视图名’ / DESC ‘视图名’ ;
新知讲授
四
⊙查看视图
➽ 3、使用SHOW CREATE VIEW语句查看视图的定义文本
基本语法形式如下:
SHOW CREATE VIEW ‘视图名’ ;
➽ 实例1:查看视图view_xscj的结构信息
MySQL语句如下:
DESCRIBE view_xscj;
新知讲授
四
⊙查看视图
➽ 实例2、查询李桂花所学课程的成绩信息
MySQL语句如下:
SELECT 姓名,分数 FROM view_xscj WHERE 姓名=“李桂花”;
任务四
1
使用视图
新知讲授
四
⊙使用视图
➽ 1、使用UPDATE语句通过更新视图来更新基本表
基本语法形式如下:
UPDATE 视图名
SET 列名1=值1, 列名2=值2,....,列名n=值n
WHERE 条件表达式;
视图定义好后,可以像使用基本表查询数据一样通过视图查询数据。视图不仅可以查询数据,而且可以更新数据。由于视图是一张虚表,因此可以使用INSERT或UPDATE语句通过视图插入或更新基本表中的数据,并可以使用DELETE语句通过视图删除基本表中的数据。
新知讲授
四
⊙使用视图
➽ 2、使用INSERT语句更新视图向基本表插入数据
基本语法形式如下:
INSERT [ INTO ] 视图名[(列名列表)]
VALUES(值列表 1)[,(值列表 2),....,(值列表n )];
➽ 3、使用DELETE语句更新视图来删除基本表中的数据
基本语法形式如下:
DELETE FROM 视图名
[ WHERE 条件表达式 ] ;
新知讲授
四
⊙使用视图
➽ 实例:通过视图将view_teacher修改李博的年龄为30.
MySQL语句如下:
UPDATE view_teacher SET 年龄=30 WHERE 姓名=“李博”;
执行上述语句之后,可以使用SELECT语句查看教师“李博”的年龄;
MySQL语句如下:
SELECT Age FROM teacher WHERE Teaname=“李博”;
任务五
1
修改视图
新知讲授
四
⊙修改视图
➽ 使用ALTER VIEW语句可以修改视图
基本语法形式如下:
ALTER VIEW 视图名[ (列1 [,列2,....n ])]
AS
SELECT 语句
[WITH [CASCADED | LOCAL ] CHECK OPTION ] ;
任务六
1
删除视图
新知讲授
四
⊙删除视图
➽ 使用DROP VIEW语句可以删除视图
基本语法形式如下:
DROP VIEW [IF EXISTS ] 视图名;
说明:
IF EXISTS为可选参数,用于判断视图是否存在,如果存在则执行,不存在则不执行;
师生互动
五
1、总结索引的特点及相关命令。
2、总结视图的特点及相关命令。
3、讨论索引和视图在具体操作中应如何区分。
讨论
随堂练习
六
1、 关于视图,下列说法错误的是( )
A.视图是虚拟表
B.视图与表一样,可以存储数据
C.视图可以像表一样进行查询、添加、修改和删除操作
D.视图中保存的是SQL语句
【答案】B
【解析】视图与表不一样,是虚拟表,不能存储数据,只能存储SQL语句
随堂练习
六
2、 视图是从( )中导出。
A.基本表
B.基本表或视图
C.数据库
D.视图
【答案】B
【解析】视图是从基本表或视图中导出来的,是虚拟表。
随堂练习
六
3、 视图是一张虚拟的表,下列说法正确的是( )
A.视图中存放的是具体的数据
B. 视图仅由窗口部分组成
C. 视图只能从表派生出来
D.视图可以像表一样进行查询、添加等操作
【答案】D
【解析】视图中存放的是SQL的定义,可以从表或视图派生出来,可以像表一样进行查询、添加、修改和删除操作。
随堂练习
六
4、视图建立后,不可以对视图进行的操作是( )
A.UPDATE
B.SELECT
C.INSERT
D.REMOVE
【答案】D
【解析】视图建立后,可以视图进行与表一样的操作,如:UPDATE,INSERT,SELECT。
随堂练习
六
5、创建视图时,CHECK OPTION短语的可选参数___________表示更新视图时要满足该视图本身定义的条件。
【答案】LOCAL
6、使用视图可以简化数据操作,当基本表的数据发生变化,则这种变化也可以自动地同步反映到________中。
【答案】视图
课堂小结
七
谢谢
$$