表连接的SQL99-标准

1 篇文章 0 订阅

1、sql99 的内连接标准

语法格式:
from  a表  join  b 表  on  表的连接条件  where  过滤条件;
from  a表   inner join  b 表  on  表的连接条件  where  过滤条件;
练习
显示 每个部门的名字 和 对应的地区的名字  
select   d.name,r.name               
  from s_dept d,s_region  r                
 where  d.region_id =  r.id;
------------------------------------------------------------------------------------------ select   d.name,r.name                   
  from s_dept d  join  s_region  r                   
    on  d.region_id =  r.id;
------------------------------------------------------------------------------------------ select   d.name,r.name                   
  from s_dept d  inner  join  s_region  r                   
    on  d.region_id =  r.id;

2、sql99 外连接标准

语法格式:
a 表   left   outer  join  b表   on  连接条件  where  过滤条件;
a 表   right  outer  join  b表   on  连接条件  where  过滤条件;
a 表   full   outer  join  b表   on  连接条件  where  过滤条件;
左外连接 
a 表 left outer join b 表 的意思就是 a 表发起连接,
a表发起连接就代表a表全部被匹配出来。
本质上 也是通过 null 记录进行匹配。

3、

练习
显示每个部门的名字 和 对应的地区的名字  没有地区编号的部门也要显示     
select d.name,r.name                    
  from s_dept d,s_region r                
 where d.region_id = r.id(+);
------------------------------------------------------------------------------------------
select d.name,r.name                     
  from s_dept d left outer join s_region r                   
    on d.region_id = r.id;

4、
 

练习
查询出所有的普通员工?    
select distinct m.id,m.first_name           
  from s_emp e,s_emp m             
 where e.manager_id(+) = m.id and e.manager_id is null;
------------------------------------------------------------------------------------------
select  distinct m.id,m.first_name           
  from  s_emp  m  left outer join s_emp  e             
    on e.manager_id = m.id   
 where  e.manager_id is null; 

  5、全外连接  

全外连接 只是一个逻辑概念   全外连接的结果集 等于 左外连接的结果集 加上右外连接的结果集然后排除重复的记录。 
全外连接 在Oracle 中 是怎么实现的?    
    全外连接 不是通过两端 加 (+) 实现的,而是通过  union   实现的    
    union 是可以合并两个结果集 然后排重    
    union  all    是 合并两个结果集 不排重  

select id from  s_emp  union  select id from s_emp;
select id from  s_emp  union  all select id from s_emp;



原文:https://blog.csdn.net/xyphf/article/details/78441210

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值