正 文

Oracle9i的简化SQL语法


www.7dspace.com  更新日期:2005-11-15 7:39:58  七度空间


易变的连接

易变的连接就是两个以上的表格被连接所用的。ISO SQL 1999标准通常假设表格从左至右连接,连接的条件是能够为现在的连接或以前的与左边的连接相关联的栏目提供参考。

Oracle8i

select emp_id, city_name, dept_name
from location l, department d, emp e
where d.location_id = l.location_id
and d.department_id = e.department_id;

Oracle9i

select emp_id, city_name, dept_name
from locations l
JOIN departments d ON (d.location_id = l.location_id)
JOIN employees e ON (d.department_id = e.department_id);

新的OUTER JOIN句法

ISO99标准把复杂的加号从Oracle outer join中拿出去,并使得outer join SQL更容易理解。

LEFT OUTER JOIN

在LEFT OUTER JOIN中,会返回所有左边表格中的行,甚至在被连接的表格中没有可配对的栏目的情况下也如此。在下边的例子中,返回了所有雇员的姓,甚至包括了那些没有分配到部门的雇员。

Oracle8i

select last_name, dept_id
from emp e, dept d
where e.department_id = d.department_id(+);

Oracle9i

select last_name, dept_id
from emp
LEFT OUTER JOIN Dept
ON e.dept_id = d.dept_id;

RIGHT OUTER JOIN
在RIGHT OUTER JOIN中返回的是表格中所有右边的行,甚至在被连接的表格中没有可配对的栏目的情况下也如此。在这个例子中,返回了所有部门的ID,包括那些没有一个雇员的的部门。

Oracle8i

select last_name, d.dept_id
from employees e, departments d
where e.department_id(+) = d.department_id;

Oracle9i

select last_name, d.dept_id
from employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);

总结

ISO99标准是Oracle改进SQL工具的另一个例子。NATURAL JOIN LEFT OUTER JOIN 和 RIGHT OUTER JOIN是这些改进中最受欢迎的,它们分别简化了SQL句法以及消除了对于复杂句法(比如+)的需要。

2页,页码:[1] [2] 

上一篇:ServletConfig与ServletContext的区别
下一篇:从Oracle迁移到SQL Server的陷阱
作者:  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐