【问题标题】:What is a View in Oracle?Oracle 中的视图是什么?
【发布时间】:2010-09-20 09:06:18
【问题描述】:

什么是 Oracle 中的视图?

【问题讨论】:

标签: database oracle views


【解决方案1】:

如果您喜欢视图的概念,但又担心性能问题,您可以让 Oracle 创建一个缓存表来表示 Oracle 保持最新的视图。
materialized views

【讨论】:

    【解决方案2】:

    常规视图----->查询的简称,此处不使用额外的空格

    物化视图---->类似于创建表,其数据将根据用于创建视图的数据查询定期刷新

    【讨论】:

      【解决方案3】:

      视图是简单的任何SELECT 查询,它已被命名并保存在数据库中。因此,视图有时称为命名查询或存储查询。要创建视图,请使用 SQL 语法:

           CREATE OR REPLACE VIEW <view_name> AS
           SELECT <any valid select query>;
      

      【讨论】:

        【解决方案4】:

        视图是一个虚拟表,它提供对一个或多个表中列的子集的访问。视图可以从一个或多个表中获取其数据。查询的输出可以存储为视图。 View 就像一张小桌子,但它实际上并不占用任何空间。视图是通过直接访问表来呈现特定用户的数据的好方法。 oracle 中的视图不过是存储的 sql 脚本。视图本身不包含数据。

        【讨论】:

          【解决方案5】:

          Oracle 中的视图 和其他数据库系统中的视图只是存储在内存中的 SQL 语句的表示,以便可以轻松地重复使用。例如,如果我们经常发出以下查询

          SELECT customerid, customername FROM customers WHERE countryid='US';
          

          要创建视图,请使用 CREATE VIEW 命令,如本例所示

          CREATE VIEW view_uscustomers
          AS
          SELECT customerid, customername FROM customers WHERE countryid='US';
          

          此命令创建一个名为 view_uscustomers 的新视图。请注意,除了定义此视图的数据字典条目外,此命令不会导致任何实际存储在数据库中。这意味着每次查询这个视图,Oracle都要出去执行视图,查询数据库数据。我们可以这样查询视图:

          SELECT * FROM view_uscustomers WHERE customerid BETWEEN 100 AND 200;
          

          Oracle 会将查询转换为:

          SELECT * 
          FROM (select customerid, customername from customers WHERE countryid='US') 
          WHERE customerid BETWEEN 100 AND 200
          

          使用视图的好处

          • 正在使用的代码的通用性。由于视图基于一组常见的 SQL,这意味着当它被调用时,它不太可能需要解析。
          • 安全。长期以来,视图一直用于隐藏实际包含您正在查询的数据的表。此外,视图可用于限制给定用户有权访问的列。
          • Predicate pushing

          您可以在这篇关于“How to Create and Manage Views in Oracle”的文章中找到高级主题。

          【讨论】:

            猜你喜欢
            • 2010-09-10
            • 1970-01-01
            • 1970-01-01
            • 2011-03-21
            • 1970-01-01
            • 1970-01-01
            • 2013-10-04
            • 2011-08-23
            相关资源
            最近更新 更多