mysql 视图

来源:互联网 发布:上班族副业知乎 编辑:程序博客网 时间:2024/06/05 05:48

 


视图的定义:

视图 就是由查询结果组成的一张虚拟表

视图的创建语法:

create view视图名 as  select 语句;

图片

显示表将会被显示出来

图片

可以看到“表结构”

图片

和视图内容

图片

删除视图语法:

 dropview  视图名;

图片

视图修改

alterview  视图名 asselect  语句;

 

创建视图的原因:

1、简化查询

2、 可以进行权限控制

  比如:可以把商品名称 等创建视图,把商品价格等“隐藏”。把表的权限保留,只把视图提供给别人。

3、大的数据分表时,可以用到数据。

比如:表的行数大于200 万行时,开始变慢,可以把一张表的数据拆成4张表(视图)来存放。

4、可以将多张表合并成一张表(视图)。结合 union.

 

注意:

1可以完全把视图当作表看待。

  2视图源于表,如果表的内容改变了,那么视图的内容也会跟着发生改变。

  3视图的增删改也将会影响表,但是视图并不是总是可以增删改的。视图和表数据是一一对应时,可以修改。对于视图insert视图必须包含所有表中没有默认值的列。

 

视图的 algorithm(算法)

Algorithm =merge/temptable/undefined

merge  当引用视图时,引用视图的语句和定义视图的语句合并。

意味着,视图只是一个规则,当查询视图时,

把查询视图的语句(比如where 等)与创建时的语句where子句合并分析,形成一条select语句。相当于把语句效果叠加。


 图片

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

是把根据创建时候的语句瞬间创建临时表,查询视图的语句,从该临时表查询。

图片

 

undefined 未定义自动,让系统帮你选择。


0 0