文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle中连接查询怎么运用??

2014-08-13 22:27

关注

Oracle中连接查询怎么运用??

welcome to 煌sir详解Oracle 篇章,让我们继续一起学习吧~~ 

查询--连接查询

一. 基础语法

笛卡尔积:两个表乘积,所有的数据最大集(开发无用)

select * from A , B;

 

内连接

select * from A , B where a.id = b.aid;

 

select * from A
inner join B on a.id = b.aid;

 

select * from A
left outer join B on a.id = b.aid

 

select * from A
right outer join B on a.id = b.aid

 

三:内连接查询实用:

--1查询显示业主编号,业主名称,业主类型名称
--隐式内连接
select ow.id 业主编号,ow.name 业主名称,ot.name 业主类型名称 from t_owners ow,t_ownertype ot 
where ow.ownertypeid=ot.id ;

--显示内连接
select ow.id 业主编号,ow.name 业主名称,ot.name 业主类型名称 from t_owners ow
inner join t_ownertype ot on ow.ownertypeid = ot.id ;




--2查询显示业主编号,业主名称、地址和业主类型


--隐式内连接
select ow.id as 编号,ow.name as 业主名称,a.name as 地址名称,ot.name as 业主类型名称
 from t_owners ow,t_ownertype ot ,t_address a
where ow.ownertypeid=ot.id and ow.addressid=a.id;


--显示内连接
select ow.id as 编号,ow.name as 业主名称,a.name as 地址名称,ot.name as 业主类型名称
 from t_owners ow inner join t_address a on ow.addressid=a.id 
inner join t_ownertype ot on ow.ownertypeid=ot.id;




--3查询显示业主编号、业主名称、地址、所属区域、业主分类
--隐式内连接
select ow.id 业主编号,ow.name 业主名称,a.name 地址,ar.name 所属区域,ot.name 业主分类 
from t_owners ow,t_ownertype ot, t_address a, t_area ar 
where ow.ownertypeid=ot.id and ow.addressid=a.id and a.areaid=ar.id ;


--显示内连接
select ow.id 业主编号,ow.name 业主名称,a.name 地址,ar.name 所属区域,ot.name 业主分类 
from t_owners ow inner join t_ownertype ot on ow.ownertypeid=ot.id
inner join t_address a on ow.addressid=a.id
inner join t_area ar on a.areaid=ar.id;





--4查询显示业主编号、业主名称、地址、所属区域、收费员、业主分类
--隐式内连接
select ow.id 业主编号,ow.name 业主名称,ad.name 地址,ar.name 所属区域, op.name 收费员,ot.name 业主分类
 from t_owners ow ,t_address ad,t_area ar ,t_operator op ,t_ownertype ot
where ow.addressid=ad.id and ad.areaid=ar.id and ad.operatorid=op.id   and ow.ownertypeid=ot.id ;


--显示内连接
select ow.id 业主编号,ow.name 业主名称,ad.name 地址,ar.name 所属区域, op.name 收费员,ot.name 业主分类
from t_owners ow inner join t_address ad on ow.addressid=ad.id
inner join t_area ar on ad.areaid=ar.id 
inner join t_operator op on ad.operatorid=op.id  
inner join t_ownertype ot on ow.ownertypeid=ot.id order by ow.id asc;

 

 

四. 左外连接

--需求:查询业主的账务记录,显示业主编号、名称、年、月、金额。如果此业主没有账务记录也要列出姓名。
select ow.id 业主编号,ow.name 名称,ac.year 年,ac.month 月,ac.money 金额 
from t_owners ow left outer join t_account ac 
on ow.id=ac.ownerid;


select ow.id 业主编号,ow.name 名称,ac.year 年,ac.month 月,ac.money 金额 
from t_owners ow left join t_account ac on ow.id=ac.ownerid;

 

Oracle 左外连接特殊用法(右边用+)

在内连接基础上,使用(+) 转换 左外连接

--oracle 左外连接 特殊用法:
select ow.id 业主编号,ow.name 名称,ac.year 年,ac.month 月,ac.money 金额 from t_owners ow, t_account ac where ow.id=ac.ownerid(+);
 

 

 

五.右外连接查询

--需求:查询业主的账务记录,显示业主编号、名称、年、月、金额。如果账务记录没有对应的业主信息,也要列出记录


select ow.id 业主编号,ow.name 名称,ac.year 年,ac.month 月,ac.money 金额 from t_owners ow right join  t_account ac  on ow.id=ac.ownerid;

 

 

Oracle 右外连接特殊用法(左边用+)

--oracle特殊语法
select ow.id 业主编号,ow.name 名称,ac.year 年,ac.month 月,ac.money 金额   from t_owners ow ,t_account ac where ow.id(+) =ac.ownerid;

 

 

小结:

内连接:

 

select * from 表1
inner join 表2 on 表1.字段 = 表2.字段
inner join 表3 on 连接条件
.....

 

select * from 表1
left outer join 表2 on 表1.字段 = 表2.字段
....

 

select * from 表1
right outer join 表2 on 表1.字段 = 表2.字段
....

 

 

左外连接:

select * from 表1, 表2 
where 表1.字段 = 表2.字段(+)

 

右外连接:

select * from 表1, 表2 
where 表1.字段(+) = 表2.字段

 

 

 

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

 

 

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯