所谓视图(View)其实是执行查询语句后得到的结果,但这个查询结果可以仿真成数据表来使用,所以有人也称它为“虚拟数据表”,视图在操作上和数据表没有什么区别,但两者的差异是其本质是不同的:数据表是实际存储记录的地方,然而视图并不保存任何记录,它存储的实际上是查询语句,其所呈现出来的记录实际来自于数据表,可以为多张数据表,大家由此可以预见到视图应用的弹性!我们可以依据各种查询需要创建不同视图,但不会因此而增加数据库的数据量。

      使用视图的好处:

1. 方便查询

如果经常要对几个表进行join查询,做成视图的话,使用时只要select * from view 就ok

        2.  方便程序的维护

            用了视图后,如果数据库中的表发生了变更,就不需要改动程序.

        3.安全性.

            针对不同用户,可以创建不同视图,限制其所能浏览和编辑的数据内容。

        4.效率高.

          视图有经过预编译,比同样关联表查询速度快,效率高.

        5.使查询简单

            可以作为一个特定查询,使用户可以重复使用,比如,建立一个查询工资大于某个值的员工名单的视图,这样每个操作员就可以直接使用这个视图来查询,而不是每个人都要输入复杂的select语句;
        

不过视图会境高系统空间等方面的开销.

 

相关概念 :       参数视图 ; 索引视图

 

比如说图书馆有图书book(id,name,prise....)
读者reader(id.....)
借阅关系 borrow( bookid,readerid,date)
显然存在一张表很不方便操作,分开又不方便查看
那就建立个视图,view1:
select * from book,reader,borrow where book.id=bookid and reader.id=readerid

这样只要查询select * from view1 就可以看到谁借了什么书了,包括所有的详细内容。

有时后会有非常复杂的逻辑,视图可以用来方便理解,可以当作中间层简化逻辑