【转】修改/删除视图
11.2.3 修改/删除视图
在创建了关系视图vw_employees之后,可以对其进行修改和删除操作。
1.修改视图
修改视图的过程即为重新定义视图的过程。可以通过首先删除视图,然后再次创建实现。另外,Oralce也提供了一个专门的命令--create or replace view来重新定义视图。其语法形式如下所示。
create or replace view 视图名称 as 查询语句|关系运算
【示例11-6】 假设现在需要为视图vw_employees添加新列employee_age,那么可以利用如下SQL语句。
create or replace view vw_employees as
select employee_id, employee_name, employee_position,
employee_age from employees
其中create or replace view vw_employees用于创建或者替换视图vw_employees的定义;as之后的查询语句为视图的新定义,在新定义中增加了列employee_age。
注意:create or replace view命令的作用。当同名视图不存在时,将执行创建命令;否则将执行替换命令。
可以通过查询视图内容验证是否成功执行了视图重定义,SQL语句如下所示。
SQL> select * from vw_employees;
EMPLOYEE_ID EMPLOYEE_NAME EMPLOYEE_POSITION EMPLOYEE_AGE
----------- ------------- ----------------- ------------
1 王晓 开发经理 35
2 钟平 高级工程师 30
3 刘俊 高级工程师 25
4 王龙 工程师 24
5 钟文 工程师 24
6 张三 测试工程师
6 rows selected
在查询结果中可以获得新列employee_age,代表视图的重定义已经成功执行。
2.删除视图
删除视图的动作实际为删除数据库中的对象操作,因此该操作为DML操作。如同删除数据表对象,删除视图也应该使用drop命令,其语法形式如下所示。
drop view view_name
其中drop view向数据库发送删除视图命令;view_name则指定了要删除的视图名称。
【示例11-7】 如需删除视图vw_employees,则可以利用如下SQL语句。
SQL> drop view vw_employees;
View dropped
可以通过查询视图内容来验证vw_employees是否成功删除。
SQL> select * from vw_employees;
select * from vw_employees
ORA-00942: table or view does not exist
ORA-00942: table or view does not exist为Oracle抛出的错误,表示表或视图不存在,印证了利用drop命令已经成功删除了视图vw_employees。