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 表名;相当于删除表在重建表

浙公网安备 33010602011771号