创建和管理视图
视图以表的形式显示查询结果。在大多数情况下,如果可以使用表,就可以使用视图。当您需要经常访问存储在多个不同表中的信息时,视图会非常有用。
另请参见:
-
有关查询的信息,请参见 Select Table Data
-
Oracle Database Concepts,了解有关视图的其他常规信息
创建视图
要创建视图,请使用 SQL Developer 的“创建视图”工具或 DDL 语句 CREATE VIEW。
本主题介绍如何使用这两种方式创建下列视图:
-
SALESFORCE,包含销售部门中员工的姓名和薪水
-
EMP_LOCATIONS,包含所有雇员的姓名和位置
此视图用于“创建触发器 INSTEAD ”。
另请参见:
-
Oracle SQL Developer User’s Guide(了解有关使用 SQL Developer 创建视图的更多信息)
-
Oracle Database SQL Language Reference(了解有关 CREATE VIEW 语句的详细信息)
教程:使用“创建视图”工具创建视图
本教程介绍如何使用“创建视图”工具创建 SALESFORCE 视图。
使用“创建视图”工具创建 SALESFORCE 视图的步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型列表中,右键单击视图。
-
在选项列表中,单击新建视图。
即会打开“创建视图”窗口,其中提供了新视图的默认值。
-
对于“方案”,请接受默认值 HR。
-
对于“名称”,请输入
SALESFORCE。 -
如果未显示“SQL 查询”窗格,请单击选项卡 SQL 查询。
-
在“SQL Query(SQL 查询)”窗格的“SQL Query(SQL 查询)”字段中:
-
在
SELECT后,键入:FIRST_NAME || ' ' || LAST_NAME "Name", SALARY*12 "Annual Salary" -
在
FROM后,键入:EMPLOYEES WHERE DEPARTMENT_ID = 80
-
-
单击 Check Syntax (检查语法)。
-
在“语法结果”下,如果消息不是
No errors found in SQL,请返回步骤 7 ,并更正查询中的语法错误。 -
单击确定。
SALESFORCE 视图已创建。要查看该视图,请展开“Connections(连接)”框架中的“Views(视图)”。
要查看用于创建此视图的 CREATE VIEW 语句,请选择其名称并单击选项卡 SQL 。
另请参见: Oracle SQL Developer User’s Guide(了解有关使用 SQL Developer 创建视图的更多信息)
使用 CREATE VIEW 语句创建视图
本示例说明如何使用 CREATE VIEW 语句创建 EMP_LOCATIONS 视图,该视图联接四个表。
Example 4-3 中的 CREATE VIEW 语句将创建 EMP_LOCATIONS 视图,该视图联接四个表。(有关联接的信息,请参阅“从多个表中选择数据”。)
示例 4-3 使用 CREATE VIEW 创建 EMP_LOCATIONS 视图
CREATE VIEW EMP_LOCATIONS AS
SELECT e.EMPLOYEE_ID,
e.LAST_NAME || ', ' || e.FIRST_NAME NAME,
d.DEPARTMENT_NAME DEPARTMENT,
l.CITY CITY,
c.COUNTRY_NAME COUNTRY
FROM EMPLOYEES e, DEPARTMENTS d, LOCATIONS l, COUNTRIES c
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID AND
d.LOCATION_ID = l.LOCATION_ID AND
l.COUNTRY_ID = c.COUNTRY_ID
ORDER BY LAST_NAME;
结果:
View EMP_LOCATIONS created.
另请参见: Oracle Database SQL Language Reference(了解有关 CREATE VIEW 语句的信息)
更改视图中的查询
要更改视图中的查询,请将 DDL 语句 CREATE VIEW 与 OR REPLACE 子句一起使用。
Example 4-4 中的 CREATE OR REPLACE VIEW 语句将更改 SALESFORCE 视图中的查询。
示例 4-4 更改 SALESFORCE 视图中的查询
CREATE OR REPLACE VIEW SALESFORCE AS
SELECT FIRST_NAME || ' ' || LAST_NAME "Name",
SALARY*12 "Annual Salary"
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 80 OR DEPARTMENT_ID = 20;
结果:
View SALESFORCE created.
另请参见: Oracle Database SQL Language Reference(了解有关带有 OR REPLACE 子句的 CREATE VIEW 的信息)
教程:使用重命名工具更改视图名称
此教程演示如何使用“重命名”工具更改 SALESFORCE 视图的名称。
要更改视图名称,请使用 SQL Developer 工具“RENAME(重命名)”或 RENAME 语句。对应的 DDL 语句为:
RENAME SALESFORCE to SALES_MARKETING;
使用“重命名”工具更改 SALESFORCE 视图的步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型的列表中,展开视图。
-
在视图列表中,右键单击 SALESFORCE 。
-
在选项列表中,选择重命名。
-
在“重命名”窗口的“新视图名称”字段中,键入
SALES_MARKETING。 -
单击应用。
-
在“确认”窗口中,单击确定。
另请参阅: Oracle Database SQL Language Reference(了解有关 RENAME 语句的信息)
删除一个视图
要删除视图,请使用 SQL Developer Connections 框架和“删除”工具或 DDL 语句 DROP VIEW。
以下教程介绍如何使用连接框架和删除工具删除 SALES_MARKETING 视图(已在教程:使用重命名工具更改视图名称中更改)。对应的 DDL 语句为:
DROP VIEW SALES_MARKETING;
使用“删除”工具删除 SALES_MARKETING 视图的步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型列表中,展开视图。
-
在视图列表中,右键单击 SALES_MARKETING 。
-
在选项列表中,单击删除。
-
在 "Drop" 窗口中,单击 Apply 。
-
在“确认”窗口中,单击确定。
另请参见: Oracle Database SQL Language Reference(了解有关 DROP VIEW 语句的信息)