动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.修改ORACLE的DATAFILE文件名.
.Oracle10g中如何分析响应时间.
.关于shared pool的深入探讨(6).
.Oracle数据库集中复制方法浅议.
.Oracle与SQL Server在企业应用中.
.完全攻略Oracle数据库的备份与恢.
.在单机上创建物理的Oracle9istan.
.利用 Ghost 复制您的Linux 系统.
.核心( Kernel )编译与 Lilo 多重.
.谈谈在ORACLE下开发JAVA程序的问.
.Oracle 10g Release2新功能之Ref.
.用Oracle9ias开发无线应用程序.
.ORACLE入门之关于ROLLBACK SEGEM.
.Linux下的压缩/解压缩工具.
.Oracle触发器详细介绍.
.Auditing Past Transactions Wit.
.Oracle9i中的电子商务平台开发一.
.UNIX系统环境下设置自动开关数据.
.Linux环境主要数据库简介.
.如何正确利用Rownum来限制查询所.

Oracle9i表连接

发表日期:2008-2-9 |



Oracle对Oracle9i SQL 做了一些很重要的改进,包括一些令人兴奋的新特点,支持1:5的数量级和ISO99中的SQL标准。作为Oracle的补充,它包括以下新的TABLE JOIN的句法结构:

CROSS IN——它在两个表格中创建了一个卡迪尔列,就象是在Oracle8i中没写WHERE时那样。

NATURAL JOIN——这是一个很有用的Oracle9i的句法,它通过从WHERE子句中移动连接标准来改善SQL的稳定性 

USING子句——它可以通过名字来具体指定连接 

ON子句——这个句法答应在两个表格中为连接具体指定栏目的名头 

LEFT OUTER JOIN——它返回表格中左边的行和右边的数值,假如没有搭配的行的话,则返回零 

RIGHT OUTER JOIN——它返回表格中右边的行和左边的数值,假如没有搭配的行的话,则返回零 

FULL OUTER JOIN——它返回的是两个表格中所有的行,用零填满每一个空格。这在Oracle8i中则没有相应的此种句法 

大多数改进都是为了让那些非Oracle的请求以快速的进入Oracle数据库而引进的,并且必须记住这些只是句法上的不同,ISO99标准并没有给Oracle9i SQL带来任何新的功能。
  

The CROSS JOIN 
在Oracle中,CROSS JOIN产生了一个“卡迪尔的产物(Cartesian prodUCt)”,就象是在连接两个表格时忘记加入一个WHERE子句一样 
select last_name,dept_id 
from emp,depts; 

在Oracle9i中,我们使用CROSS JOIN 来达到相同的结果 
select last_name.dept_id 
from emp 
CROSS JOIN dept; 

NATURAL JOIN 


我喜欢NATURAL JOIN的原因在于它能够通过在两个表格中配对的栏目的名头来自动的检查join。它同时还简化了Oracle9i SQL,由于where子句仅仅只能过滤谓语,当然,NATURAL JOIN要求在每一个表格中的栏目的名字相同。很有意思的是,这种特性甚至在没有主要的或是外来的要害词作为参考是也能起作用 



Oracle8i, 
Select book_title, sum(quantity) 
From book, sales 
Where book.book_id = sales.book_id 
group by book_title; 

Oracle9i 
Select book_title, sum(quantity) 
from book 
natural join sales 
group by book_title; 

USING子句 
假如几个栏目有同样的名字,而你又不想用所有的这些栏目来连接的时候,你就可以用USING子句。在USING子句中所列的栏目的句子中不会有任何的修饰词,包括where子句也不会有 
Oracle8i 
select dept_id, city 
from departments, locations 
where departments.location_id = location.location_id; 

Oracle9i 
select department_name, city 
from departments 
JOIN locations 
USING (location_id);

ON子句 
ON子句被用于当在两个表格中的栏目名字不搭配时来连接表格。而连接条件就是where子句中的过滤条件 
Oracle8i 
select department_name, city 
from department, location 
where department.location_id = location.loc_id; 

Oracle9i 
select department_name, city 
from department d 

JOIN location l 
ON (d.location_id = l.id); 

易变的连接 

  易变的连接就是两个以上的表格被连接所用的。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句法以及消除了对于复杂句法(比如+)的需要。
上一篇:9i新特性之四缩小非计划当机时间 人气:404
下一篇:Oracle Application Serve 人气:774
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-6 Movie34电影搜索引擎 v3.0
2008-9-6 wap2.0仿帝国建站喜用 v2.0
2008-9-6 免费人才招聘网 宽屏版 v3.01
2008-9-6 喜喔喔视频采集程序 v1.0 beta
2008-9-6 ASP客户管理系统
2008-9-6 主流驿站中秋祝福程序
2008-9-6 php实现msn协议的类
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号