如何将视图看做普通表来查询数据?谢谢大家!!

解决方案 »

  1.   

    视图:
    是由SELECT查询语句(可以是单表或者多表查询)定义的一个"逻辑表",只有定义而无数据,是一个"虚表"。
    在创建视图时,只是将视图的定义信息保存在数据字典中, 而并不将实际的数据复制到任何地方, 
    即不需要在表空间中为视图分配存储空间。视图是查看和操纵基表数据的一种方法, 可以像使用表一样使用视图。视图中的数据会随基表的更新而自动更新。一、视图带来更改的灵活性,可更改组成视图的一个或多个表的内容而不用更改应用程序。
    假如有一个由两个表连接成的视图,从一个表中显示三列而从另一个表中显示四列。
    如果前一个表中增加了一列,这对视图的定义不产生影响,也不会影响涉及到此视图的应用。
    二、视图可以隐藏数据的复杂性。Oracle数据库由许多表组成。执行连接(Join)操作,
    用户可从两个或多个表中检索出信息,但这些连接操作常常把最终用户有时甚至是专家搞糊涂。
    在这种情况下,就有必要建立混合有多表信息的视图。
    例如,可以创建一个混合有顾客表和订单表的数据的视图。
    数据库用户只需简单地从这个名为cust_ord的视图中做一个检索操作即可找出相应的数据,
    他们完全不用知道这张视图实际是基于两个表。
    三、视图可以提供附加的安全层。例如,用户有一张公司雇员情况表,
    可为各个部门经理建立分别的视图,使他们各自只能看到自己部门的雇员情况。
    四、视图有助于命名的简洁。在为Oracle数据库建立表列名的时候,
    我们常常忘记用户要将它们输入到SQL语句中。例如:我们可以将一个表列命名为middle_initial_of_person,
    可以在视图中将其重命名为MI。
      

  2.   

    视图本来就可象表一样查询数据的。对使用者来说, 视图相对与表来更有表现力,能隐藏数据库复杂的表结果,更能反映真实业务含义。
    我们在用hibernate从数据库反射出的类,视图对应的类,更接近领域模型