(http://www.cppblog.com/init/articles/204159.html)
What
视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
我所接触到的视图的好处:
1.很多字段和数据在不同的表中,在程序中调用要找到所有的实体并一一获取其中的字段,比较麻烦,同时由于查询了多张表,与数据库多次访问,导致程序运行速度变慢,如果用视图,一次访问得到所有所需的字段,又快又方便。
2.展示了所有所需的字段,查看视图的时候方便看业务需求,而不用去各个表去看各个字段内容
3.在分页时配合存储过程(比如一页十条记录)可以通过count得到所有结果集的总数(得到所有记录的count)
4.某些需要计算需要多次连接并不怎么需要次次计算的业务需求,可以直接在视图中计算,保存数据,在程序中访问此视图直接取值,达到了优化页面加载速度的功能,
如:一台机器有4种不同的字段(重量,颜色,生产日期,使用年限,是否可用),如果一个页面要展示50kg的机器有几台,红色的有几台,生产日期为2017年的有几台,使用年限的有几台,可用的有几台,传统的写法是,通过不同的查询条件一共需要5次访问数据库得到5个相应的count,但是如果用一张新的视图,字段就是分别计算各个条件的sum,直接在数据库中就计算出,在程序访问数据库只需要访问这个视图就能直接得到所有的总数了。