Oracle Create View创建视图

在 Oracle 中,View视图是物理上不存在的虚拟表。它存储在 Oracle 数据字典中,不存储任何数据。它可以在调用时执行。

View视图是通过连接一个或多个表的查询创建的。

一、Oracle 创建视图

创建视图的语法:

CREATE VIEW view_name AS  
SELECT columns  
FROM tables  
WHERE conditions;  

参数说明:

  • view_name:它指定要创建的 Oracle VIEW 的名称。

创建视图的例子:

让我们举个例子来创建视图。在此示例中,我们首先创建两个表供应商和订单。

Suppliers表:

CREATE TABLE  "SUPPLIERS"  
   (    "SUPPLIER_ID" NUMBER,   
    "SUPPLIER_NAME" VARCHAR2(4000),   
    "SUPPLIER_ADDRESS" VARCHAR2(4000)  
   )  
/  

Orders表:

CREATE TABLE  "ORDERS"   
   (    "ORDER_NO." NUMBER,   
    "QUANTITY" NUMBER,   
    "PRICE" NUMBER  
   )  
/  

执行以下查询以创建视图名称 sup_orders。

CREATE VIEW sup_orders AS  
SELECT suppliers.supplier_id, orders.quantity, orders.price  
FROM suppliers  
INNER JOIN orders  
ON suppliers.supplier_id = supplier_id  
WHERE suppliers.supplier_name = 'VOJO';  

输出结果为:

View created.
0.21 seconds

您现在可以通过以下查询检查 Oracle VIEW:

SELECT * FROM sup_orders;  

输出结果为:

SUPPLIER_ID	QUANTITY	PRICE
  3	         35	          70
  3	         26	         125
  3	         18	         100
3 rows returned in 0.00 seconds

二、Oracle 更新视图

在 Oracle 中,CREATE OR REPLACE VIEW 语句用于修改 Oracle VIEW 的定义而不删除它。

语法:

CREATE OR REPLACE VIEW view_name AS  
  SELECT columns  
  FROM table  
  WHERE conditions;   

更新视图的例子:

执行以下查询以更新名为 sup_orders 的 Oracle VIEW 的定义而不删除它。

CREATE or REPLACE VIEW sup_orders AS  
  SELECT suppliers.supplier_id, orders.quantity, orders.price  
  FROM suppliers  
  INNER JOIN orders  
  ON suppliers.supplier_id = supplier_id  
  WHERE suppliers.supplier_name = 'HCL';  

您现在可以通过以下查询检查 Oracle VIEW:

SELECT * FROM sup_orders;  

输出结果为:

SUPPLIER_ID	QUANTITY	PRICE
      1	         35	         70
      1	         26	        125
      1	         18	        100
row(s) 1 - 3 of 3	

三、Oracle 删除视图

DROP VIEW 语句用于完全删除或删除 VIEW。

语法:

DROP VIEW view_name;  

例子:

DROP VIEW sup_orders;  

 

热门文章

优秀文章