在现实中,在有些情况下,可能不能将表的所有信息展示出去 ,但是如果在建立一个新表会有很大的冗余 所以会在原表的基础上,建立一个虚拟表(视图) 建立视图后在mysql 中就有一个表,但是他只是一个虚拟表, 视图建立的虚拟表一般只做查询操作。 如果多个表经常需要多表查询可以把多个表连接起来做成一个视图。方便操作简化复杂的业务逻辑。
建立视图的语法:
Create view view_name as select id,t_name from table_name;
删除视图
Drop view view_name;
修改视图:
Alter view view_name as select * from table_name;
修改视图就是在建立一个视图视图实际上就是一个查询语句的保存
修改视图中字段名:
Create view view_name as select id,username from table_name;
Alter view view_name (v1,v2) as select id,username from table_name;
视图有两种执行方式:
1 merge
2 temptable
第一中为 合并方式 就是 在操作视图时 把 视图的建立语句和操作视图的语句结合起来 执行!
第二种方式,临时表方式当操作视图是把视图当做 临时表来操作!
当用户在建立视图时:mysql 默认使用一种 undefined 的处理算法: 就是会自动在合并和临时表内进行选择。
两种方法的区别:
第一种方法 如果操作语句比较复杂 会出现 语法错误的情况! 会自动修改语法,自动丢弃一些语句!
使用视图是需要注意的地方:
1.一般只在视图中完成查询操作。
2.在对视图的内容进行修改时,真实的表也会被修改。
3.删除视图时,不会删除实体表内的数据。
4.如果做外部接口,一个数据库多个应用,正对每一个应用可以采取不同的视图。
5.如果对视图的内容进行删除,和插入时要考虑 在原表中有而视图中没有的字段是否可以为空。