天天看点

mysql 视图

视图的创建语法:

create view视图名 as  select  语句;

显示表 将会被显示出来

可以看到“表结构”

和视图内容

删除视图语法:

drop view  视图名;

视图修改

alter view  视图名 as select  语句;

创建视图的原因:

1、 简化查询

2、 可以进行权限控制

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

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

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

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

注意:

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

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

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

视图的 algorithm(算法)

Algorithm = merge/temptable/undefined

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

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

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

 

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

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

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

————————————————

版权声明:本文为CSDN博主「明明如月学长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/w605283073/article/details/46572537

继续阅读