正 文

Oracle9i 开发标量子查询


www.7dspace.com  更新日期:2005-11-6 3:13:35  七度空间


标量子查询的引入是 Oracle9i中最显著的一个变化。以前 Oracle 允许在 SQL 语句的 FROM 子句中使用 SQL 子查询,Oracle9i扩展了这一功能,允许在 SELECT 子句中使用 SQL 子查询。

例如下面的这段代码。注意嵌入在外层SELECT子句和FROM子句中的SELECT语句。

Select
   (select max(salary) from emp) highest_salary,
   emp_name,
   (select avg(bonus) from commission) avg_commission,
   dept_name
from
   emp,
   (select dept_name from dept where dept = 'finance')
;

从这个例子中我们可以看到 Oracle 允许在任何 SQL 语句的 SELECT 子句中包含单行子查询。这一功能在一些麻烦的查询中会很有用处,这一特点值得 Oracle9i开发者注意。

标量子查询也能用于数据操纵语言(DML)。看下面的例子,在 INSERT 语句中包含有一个子查询:

insert into
   Customer
(name, max_credit)
values
    ('Sam', select max(credit) from credit_table where name = 'SAM');

从这里我们可以看出标量子查询对于提高 INSERT 和 UPDATE 语句的效率可能会很有帮助,因为如果不用标量子查询的话,就必须在WHERE子句中使用子查询才能得到所需的数据。

本文作者:Donald Burleson是有23年经验的数据库管理员,他出版过14本数据库专著,发表论文达100余篇。Donald Burleson是Oracle Internals的主编和Burleson Oracle Consulting的总裁。


上一篇:使用CREATE TABLE语句声明一个计算列
下一篇:使用SQL MERGE语句组合表
作者:Donald Burleson  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐