什么是Oracle中的视图?

Oracle有什么看法?

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

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

要创build视图,请使用本示例中所示的CREATE VIEW命令

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

这个命令创build一个名为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,这意味着当它被调用时,它不太可能需要parsing。
  • 安全。 很久以来,视图就被用来隐藏实际上包含你正在查询的数据的表。 另外,可以使用视图来限制给定用户有权访问的列。
  • 谓词推动

您可以在本文中find有关“ 如何在Oracle中创build和pipe理视图 ”的高级主题。

如果你喜欢观点的想法,但担心performance,你可以让Oracle创build一个代表oracle观点最新的视图的caching表。
查看物化视图

定期查看—–>一个查询的短名称,这里没有额外的空间

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

一个视图就是任何已经被赋予名字并保存在数据库中的SELECT查询。 出于这个原因,视图有时被称为命名查询或存储查询。 要创build视图,请使用SQL语法:

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

一个视图是一个虚拟表,它提供从一个或多个表访问列的子集。 一个视图可以从一个或多个表中派生它的数据。 查询的输出可以存储为视图。 视图像小桌子一样行动,但实际上并不占用任何空间。 查看是直接访问表格中的特定用户数据的好方法。 在oracle中的视图是一个存储的SQL脚本。 视图本身不包含任何数据。