mysql之视图

  view又称虚拟表,是sql查询的结果。

  view的作用

  1:权限控制

  比如一张表的某几个列允许用户查询,其他的列不允许,可以通过视图开放几个列,达到权限控制的作用。

  2:简化复杂的查询

  如果一条sql语句比较复杂,可以先把一部分的结果作为视图,再从视图里查询。

  3:视图的增删改

  视图的每一行与物理表的每一行一一对应,则视图可以更改,这种情况,更改视图,物理表也会变化。

  视图的某一行是由物理表的几行经过计算而得到的结果,则视图是不可以更改的。

  创建视图,create view 视图名称 as select 列名称 from 表名称 where ...,比如,create view vgoods as select goods_id,cat_id,goods_name from goods where goods_id<9;

  视图的algorithm

  视图是作为sql语句存储的。

  对于简单形成的view,再对view查询时,如where,order等等,可以把建视图的语句+查视图的语句合并成查物理表的语句,这种视图的算法叫做merge(合并)。

  如果创建view的语句本身就很复杂,很难把建视图的语句和查视图的语句合并,mysql先执行视图的创建语句,把结果集形成内存的临时表,再查询临时表,这种视图的算法叫做temptable。

  比如,create algorithm=temptable view v1 as select goods_id,goods_name,cat_id,avg(shop_price) from goods group by cat_id; 

  表/视图管理语句

  查看某个数据库下的所有表和视图,show tables;

  查看表结构,desc 表名;

  查看建表过程,show create table 表名;

  删除表,drop table 表名;

  查看所有表的信息,show table status;

  查看某张表的信息,show table status where name=‘表名’;  在最后加\G可以竖着显示结果

  改表名,rename table 原表名 to 新表名;

  清楚表的全部数据,truncate 表名;相当于删除表在重建表

  

 

posted @ 2015-05-15 11:08  museluo  阅读(155)  评论(0)    收藏  举报