首页 > 数据库技术 > 详细

Mysql视图

时间:2015-12-11 16:48:05      阅读:583      评论:0      收藏:0      [点我收藏+]


视图,VIEW

    视图是一张表,但是是虚拟表

    是通过一条查询语句得到一个虚拟表

    因此,认为视图就是select语句的结果


创建视图语法:

    

create view 视图名字 AS 查询语句;


例:

create view stu_info as select * from select_student as s left join select_class using(class_id);
select * from stu_info;


创建视图后,就可以在视图内,完成查询工作了:

技术分享


可见,使用视图的功能之一,就是简化查询的业务逻辑!


注意:视图内是不保存真实数据的!视图内,只有一条形成视图的select语句而已

    因此,每次从视图查询时,都需要利用视图,再在真实的表内将数据查询到

    类似一个 from 型子查询:

select * from (select * from select_student as s left join select_class using(class_id)) as stu_info;


功能之二:隐藏真实的表结构!从而取得更大的兼容性

        


总结作用:

    1:简化逻辑

    2:隐藏真实表结构(兼容性,限制用户处理)



视图算法,执行方式


场景:取得每个班级最高的学生信息

使用from型子查询,可以,但是使用同样逻辑的视图不行:

技术分享


视图:

技术分享


技术分享


视图一共有三种执行方式:

    

merge , 合并

temptable , 临时表

undefined , 未定义,就是默认的,mysql自己决定算法(从merge and temptable 自己选择)


典型的都是选择merge的!因此上面的视图查询:

技术分享

如何解决?可以选择决定视图的算法,在创建视图时指定:

algorithm = temptalbe 即可


技术分享

Mysql视图

原文:http://ginvip.blog.51cto.com/8092345/1721972

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!