ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:69.96KB ,
资源ID:21615217      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21615217.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(oracle等值连接与外连接操作Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

oracle等值连接与外连接操作Word下载.docx

1、NEW YORK20 RESEARCHDALLAS30 SALESCHICAGO40 OPERATIONSBOSTON select * from emp;EMPNO ENAMEJOBMGR HIREDATESALCOMMDEPTNO- - - - - - - -7369 SMITHCLERK7902 17-DEC-80800207499 ALLENSALESMAN7698 20-FEB-811600300307521 WARD7698 22-FEB-8112505007566 JONESMANAGER7839 02-APR-8129757654 MARTIN7698 28-SEP-81140

2、07698 BLAKE7839 01-MAY-8128507782 CLARK7839 09-JUN-812450107788 SCOTTANALYST7566 19-APR-8730007839 KINGPRESIDENT17-NOV-8150007844 TURNER7698 08-SEP-81150007876 ADAMS7788 23-MAY-8711007900 JAMES7698 03-DEC-819507902 FORD7566 03-DEC-817934 MILLER7782 23-JAN-821300当然了,为了将来能够方便操作,我们通常会在表上建立主外键约束关系(不是必须的

3、),并通过主外键的对应关系来找到我们想要的数据,在上面的两张表中deptno是dept表的主键,而deptno是emp表的外键。这其实就是Oracle的等值连接(或者称为内连接)想要达到的目的。比如我们有这样一个需求,找到员工表中的员工编号和员工名称以及他所在的部门编号、部门名称和部门所在地,我们来看一下实现的语句: select dept.deptno,dname,loc,empno,ename2from emp,dept3where emp.deptno=dept.deptno;LOCEMPNO ENAME- - - - -DALLAS7369 SMITHCHICAGO7499 ALLEN

4、7521 WARD7566 JONES7654 MARTIN7698 BLAKENEW YORK7782 CLARK7788 SCOTT7839 KING7844 TURNER7876 ADAMS7900 JAMES7902 FORD7934 MILLER这就是Oracle的等值连接,不过对于这样的一个语句来说,有三个地方最好做一些调整:1.不同表的列使用表的名称作为前缀(如果表使用了别名,前缀就不能再用表的真实名字)2.不使用表的原名称而使用表的别名,这样语句会更简短(有用吗?当然,oracle会把语句的完整文本放到内存中,语句越短,占内存越小)3.格式化语句,考虑折行、语句区分大小写(如果

5、你的语句有问题,没人愿意为你的乱七八糟的语句给出建议)以下是我的书写习惯,仅供参考select d.deptno,d.dname,d.loc,e.empno,e.enamefrom empe,dept dwhere e.deptno=d.deptno;以上的连接方法是Oracle自己的语法,当然对于这样的需求使用SQL99语法也非常的容易,并且可以使用其中的几种语法来实现,在这里我们仅以自然连接(natural join)来举一个小例子: select deptno,456e natural join dept d;当然对于自然连接,Oracle有一些限制,比如要求两个表的列的名称和数据类型一

6、样,另外,在做查询的时候,连接的列不能使用前缀,否则会报错ORA-25155: column used in NATURAL join cannot have qualifier,如果列的类型不一样的话,我们可以选择使用join using语法。等值连接是oracle数据库当中最简单也是使用最多的一种关联方式。我们再来看一下Oracle的外连接操作,凭心而论,Oracle的语法实现比SQL99外连接语法要简单一些,不过没有SQL99语法具体和完善,比如Oracle没有全外连接的概念。还是先来看一下为什么要使用外连接吧!如果我们有这样的一个需求,列出公司里所有的部门和部门下的员工,很显然,用上面

7、的等值连接是实现不了的。我们看到40部门是存在的,但是等值连接里并不能显示这样的记录,道理很简单,40部门没有一个员工,所以在和员工表做等值连接的时候无法显示出来,那如何来实现这样的需求呢?很简单Oracle提供了(+)这样的外连接方法我们来看下面的句子: select d.deptno,78where d.deptno=e.deptno(+);我们看到40部门(OPERATIONS)被显示出来了,当然由于他没有员工所以在员工信息部分会补空值。也许有人会有这样的疑问,where d.deptno=e.deptno(+)中的(+)符号是应该出现在那个表的列后面呢?是随意的吗?我们来稍微总结一下:

8、1.(+)只能在关联条件的一端出现,本例中是e.deptno(+),也可以说是e表的一边2.如果在where后面有其他的条件,那其他的所有条件都要使用(+)3.(+)出现在值少的一端,比如本例中,员工表没有员工能和40部门对应,我们认为员工表记录少我们来看部门表记录少的一个例子: update emp set deptno=null where empno=7369;1 row updated. commit;Commit complete.800通过修改,我们把7369(SMITH)的部门号置为空,这就意味着,当我们使用部门号deptno做等值查询时,7369不会显示出来,因为部门表没有一条记录可以和7369对应,现在的情况是员工表记录多,如果我们想要把7369显示,就要在少的一端(部门表列)上添加(+)where d.deptno(+)=e.deptno;- -

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1