【发布时间】:2010-09-20 09:06:18
【问题描述】:
什么是 Oracle 中的视图?
【问题讨论】:
什么是 Oracle 中的视图?
【问题讨论】:
如果您喜欢视图的概念,但又担心性能问题,您可以让 Oracle 创建一个缓存表来表示 Oracle 保持最新的视图。
见materialized views
【讨论】:
常规视图----->查询的简称,此处不使用额外的空格
物化视图---->类似于创建表,其数据将根据用于创建视图的数据查询定期刷新
【讨论】:
视图是简单的任何SELECT 查询,它已被命名并保存在数据库中。因此,视图有时称为命名查询或存储查询。要创建视图,请使用 SQL 语法:
CREATE OR REPLACE VIEW <view_name> AS
SELECT <any valid select query>;
【讨论】:
视图是一个虚拟表,它提供对一个或多个表中列的子集的访问。视图可以从一个或多个表中获取其数据。查询的输出可以存储为视图。 View 就像一张小桌子,但它实际上并不占用任何空间。视图是通过直接访问表来呈现特定用户的数据的好方法。 oracle 中的视图不过是存储的 sql 脚本。视图本身不包含数据。
【讨论】:
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
使用视图的好处
您可以在这篇关于“How to Create and Manage Views in Oracle”的文章中找到高级主题。
【讨论】: