什么是Oracle中的视图?

时间:2008-11-02 09:33:39

标签: database oracle views

Oracle中的视图是什么?

5 个答案:

答案 0 :(得分:127)

在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。”

的高级主题

答案 1 :(得分:12)

如果你喜欢Views的想法,但是担心性能,你可以让Oracle创建一个缓存表来表示oracle保持最新的视图。
materialized views

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

视图是一个虚拟表,可以从一个或多个表中访问列的子集。视图可以从一个或多个表中获取其数据。查询的输出可以存储为视图。查看就像小桌子一样,但它不会占用任何空间。 View是直接访问表中特定用户的数据的好方法。 oracle中的视图只是存储的sql脚本。视图本身不包含任何数据。

答案 4 :(得分:2)

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

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