MySQL学习 5 视图

1. 视图

视图(view)可以看做一张虚拟表,是表通过某种运算得到的一个投影。

既然视图只是表的某种查询的投影,所以主要步骤在于查询表上,查询的结果命名为视图就可以了。

1)定义

视图是由查询结果形成的一张虚拟表。

2)创建

3) 删除

4)使用视图的好处

- 可以简化查询

- 可以进行权限控制 :把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据

- 大数据分表时可以用到 :比如,表的行数超过 200 万行时,就会变慢,可以把一张的表的数据拆成 4 张表来存放,把 4 张表形成一张视图

5)修改

6)视图与表的关系

视图是表的查询结果,表的数据改变了,就会影响视图的结果;

视图增删改也会影响表,但是,视图并不是总能增删改的。

视图某种情况下,是可以修改的。要求是, 视图的数据和表的数据 11 对应,就像函数的映射。

表-->推出视图对应的数据

视图-->推出表对应的数据

对于视图,insert 还应注意,视图必须包含表中没有默认值的列

7)视图的 algorithm

Algorithm = merge/ temptable/ undefined

Merge:当引用视图时,引用视图的语句与定义视图的语句合并.

Merge意味着视图只是一个规则,语句规则,当查询视图时,把查询视图的语句(比如 where 那些)与创建时的语句 where 子句等合并,分析,形成一条 select 语句

Temptable:当引用视图时,根据视图的创建语句建立一个临时表

temptable 是根据创建语句瞬间创建一张临时表,然后查询视图的语句从该临时表查数据

Undefined:未定义,自动,让系统帮你选

你可能感兴趣的:(MySQL学习 5 视图)