数据库视图、SQL*Plus 基础与脚本编写全解析
1. 内联视图的数据操作
内联视图是在 SQL 命令中充当表表达式角色的子查询。即在通常指定表或视图名称的地方,指定一个子查询(用括号括起来)。之前我们仅在查询的 FROM 子句中讨论过内联视图,实际上它还可用于数据操作,尤其与可更新连接视图结合使用时非常有用。
以下是一个通过内联可更新连接视图执行 UPDATE 命令的示例:
SQL> update ( select e.msal
2 from employees e join
3 departments d using (deptno)
4 where location = 'DALLAS')
5 set msal = msal + 1;
执行结果显示更新了 5 行数据,之后可以使用 rollback 回滚操作。
这个示例表明,通过内联连接视图可以执行 UPDATE 命令,给达拉斯的所有员工象征性地加薪。值得注意的是,UPDATE 命令本身没有 WHERE 子句,内联视图起到了过滤待更新行的作用。如果在针对 EMPLOYEES 表的常规 UPDATE 命令中实现这种过滤,可能需要在 WHERE 子句中使用相关子查询,会比较复杂。
虽然乍一看通过内联视图(或子查询)进行数据操作有些奇怪,但可能性几乎是无限的。其语法优雅易读,响应时间至少与针对底层基表的相应命令相同,甚至可能更好。当然,之前讨论的通过可更新连接视
超级会员免费看
订阅专栏 解锁全文
854

被折叠的 条评论
为什么被折叠?



