基本sql语句--视图

视图:view
 
若某个查询结果被频繁的用到,可以通过视图将该查询语句的结果保存起来,以达到提交性能的作用。
视图是由查询结果形成的一张虚拟表。
 
视图的创建语法:create view 视图名 as select语句。
     如:create view guizhongshangpin as select good_id,good_name from good where shop_price>1000;
 
视图的作用:
     1.可以简化查询;
     2.可以进行权限控制;把表的权限封闭,开放相应的视图权限(视图中只开放部分列、部分数据)
     3.大数据分表时可以用到视图;
 
删除视图:drop view 视图名;
 
视图修改:alter view 视图名 as select xxx;---建议先删除再重建
 
视图与表的关系
视图是表的查询结果,自然表的数据改变了,影响表的结果;
 
0.视图增删改也能影响表;
1.视图并不是总能增删改的;
2.视图的数据与表的数据,一一对应时,视图的数据可以增删改,且能影响到表;
3.对于视图insert,还应注意,视图必须包含表中没有默认值的列;
 
视图的algorithm(算法)
 
algorithm有三种值:merge,temptable,undefined。
merge:当引用视图时,引用视图的语句与定义视图的语句合并;
temptable:当引用视图时,根据视图的创建语句建立一个临时表;
undefined:未定义,自动,让系统帮你选。
 
merge意味着视图只是一个规则,语句规则;当查询视图时,把查询视图的语句(比如where等)与创建时的语句(where子句等)合并,分析;最终形成一条select语句。
而temptable是根据创建语句瞬间创建一张临时表;然后查询视图的语句从该临时表查数据。
 
创建语句:create algorithm=temptable view 视图名 as select语句。