数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle数据查询时经常用到的关联


发布日期:2022年08月17日
 
Oracle数据查询时经常用到的关联

关联在Oracle数据查询时会经常用到灵活的应用关联可以解决很多实际应用的问题下面给出一些示例:

建表

create table ab(ab_id number()ab_name varchar());create table bb(bb_id number()bb_name varchar());

插入数据

insert into ab(ab_idab_name) values(ab_name);insert into ab(ab_idab_name) values(ab_name);insert into ab(ab_idab_name) values(ab_name);insert into bb(bb_idbb_name) values(bb_name);insert into bb(bb_idbb_name) values(bb_name);insert into bb(bb_idbb_name) values(bb_name);insert into bb(bb_idbb_name) values(bb_name);

等值关联(全关联)

select aab_idaab_namebbb_name from ab a bb bwhere aab_id=bbb_id;

返回结果

AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name

返回两个表中所有能匹配的记录不能匹配的记录不返回

左关联

select ab_idab_name bb_name from ab a left join bb bon aab_id=bbb_id;同select ab_idab_name bb_name from ab a bb bwhere aab_id=bbb_id(+);

返回结果

AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name

返回左边表的左右记录在右边表中没有对应记录的右表字段显示为空

右关联

select ab_idab_name bb_name from ab a right join bb bon aab_id=bbb_id;同select ab_idab_name bb_name from ab a bb bwhere aab_id(+)=bbb_id;

返回结果:

AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_namebb_namebb_name

返回右边表中所有的记录在右边表不能匹配的记录行上左边表对应的字段显示为空

完全外关联

select ab_idab_name bb_name from ab a full join bb bon aab_id=bbb_id;

返回结果

AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name bb_namebb_name

返回两个表所有的结果如果在关联条件上没有对应的记录那么将在该列上显示为空

全关联返回的结果集范围最小完全外关联返回的结果范围最大是否左关联和右关联并集全关联是左关联和右关联的交集

上一篇:手动创建Oracle数据库之前因后果

下一篇:自定义临时表实现及在OracleSpatial应用