(1). 简化业务,将多个复杂条件,改为视图
(2). mysql对用户授权,只能控制表权限,通过视图可以控制用户字段权限。
(3). 可以避免基本表变更,影响业务。只需更改视图即可。
(1). 创建视图:create view 视图名 as select * from 表;
(2). 查询视图:select * from 视图名; // 与查询表一致
(3). 查询视图结构:show create view 视图名; // 与查询表结构一致
(4). 替换视图:create or replace view 视图名 as select * from 表;
(5). 修改视图:alter view 视图名 as select * from 表;
(6). 删除视图:drop view 视图名;
通过视图key更新数据,视图中的行,必须与基本表的行一一对应。
创建视图时,用函数,分组,去重等,则不能通过视图插入更新数据
作用:避免通过视图插入的数据,视图查询不到。
(1). create view 视图名 as select * from 表 where 条件 with cascaded check option;// 默认
(2). create view 视图名 as select * from 表 where 条件 with local check option;
加了视图检查选项,会对where条件进行检查,不能插入不满足where条件的数据。
(3). create view 视图名 as select * from 视图 where 条件 with cascaded check option;// 默认
(4). create view 视图名 as select * from 视图 where 条件 with local check option;
可以基于视图创建视图,cascaded 与 local 的区别是,父视图没有检查选项时,local不检查父视图where条件,cascaded会检查父视图where条件。