Oracle删除视图
在本教程中,您将学习如何使用Oracle DROP VIEW
语句从数据库中删除视图。
Oracle DROP VIEW语句简介
要从数据库中删除视图,请使用以下DROP VIEW
语句:
DROP VIEW schema_name.view_name
[CASCADE CONSTRAINT];
下面来看看各个参数的说明 -
- schema_name - 首先,指定包含视图的模式的名称。如果跳过模式名称,则Oracle假定该视图位于当前用户模式中。
- view_name - 其次,指定要删除的视图的名称。如果一个视图被其他视图,物化视图或同义词所引用,Oracle将把这些对象标记为
INVALID
,但不会将其移除。 - CASCADE CONSTRAINT - 第三,如果视图有任何约束,则必须指定
CASCADE CONSTRAINT
子句以删除引用视图中的主键和唯一键的所有参照完整性约束。如果不这样做,存在这样的约束时,DROP VIEW
语句将会失败。
Oracle DROP VIEW示例
以下语句基于employees
表创建一个名为salesman
的视图:
CREATE VIEW salesman AS
SELECT
*
FROM
employees
WHERE
job_title = 'Sales Representative';
该视图仅返回职位为销售代表的员工。
SELECT
*
FROM
salesman;
如下所示 -
以下语句基于salesman
视图创建另一个名为salesman_contacts
的视图:
CREATE VIEW salesman_contacts AS
SELECT
first_name,
last_name,
email,
phone
FROM
salesman;
salesman_contacts
视图返回推销员的唯一名称,电子邮件和电话:
SELECT
*
FROM
salesman_contacts;
执行上面查询语句,得到以下结果 -
要删除salesman
视图,请使用以下语句:
DROP VIEW salesman;
由于salesman_contacts
视图依赖于salesman
视图,因此在salesman
视图被删除时变为无效。
可以通过查询user_objects
视图中的数据来检查视图的状态。请注意,对象名称必须是大写的。
SELECT
object_name,
status
FROM
user_objects
WHERE
object_type = 'VIEW'
AND object_name = 'SALESMAN_CONTACTS';
执行上面查询语句,得到以下结果 -
正如所看到的,salesman_contacts
视图的状态是无效的。
要删除salesman_contacts
视图,请使用以下DROP VIEW
语句:
DROP VIEW salesman_contacts;
在本教程中,您学习了如何使用Oracle DROP VIEW
语句从数据库中删除视图。