sql-99标准连接的语法

总体的语法如下:
SELECT  table1.column, table2.column 
FROM  table1 
[CROSS JOIN table2] | 
[NATURAL JOIN table2] | 
[JOIN table2 USING (column_name)] | 
[JOIN table2  
  ON(table1.column_name = table2.column_name)] | 
[LEFT|RIGHT|FULL OUTER JOIN table2  
  ON (table1.column_name = table2.column_name)]; 


交叉连接(笛卡尔积):cross join
select * from emp cross join dept;


自然连接:
    对于两个表之间相同名字和数据类型的列进行的等值连接
    如果两个表之间形同的名称的列的数据类型不同,则会产生错误
    使用natural join子句来完成
      select * from emp natural join dept;


USING子句:
    自然连接时使用所有名称的数据类型相匹配的列作为连接条件,而USING子句
    可以指定用某个或者某几个相同名字和数据类型的列作为连接条件
        select * from emp join dept using(deptno);
    使用USING子句创建连接时,应注意以下几点: 
    –如果有若干个列名称相同但数据类型不同,自然连接子
      句可以用USING子句来替换,以指定产生等值连接的列。 
    –如果有多于一个列都匹配的情况,使用USING子句只能指
      定其中的一列。 
    –USING子句中的用到的列不能使用表名和别名作为前缀。 
    –NATURAL JOIN子句和USING子句是相互排斥的,不能同时
      使用。


ON子句:(连接条件可以写在里面,限定条件写在where里)
    自然连接条件基本上是具有相同列名的表之间的等值连接; 
    如果要指定任意连接条件,或指定要连接的列,则可以使用ON子句; 
    用ON将连接条件和其它检索条件分隔开,其它检索条件写在WHERE子句; 
    ON子句可以提高代码的可读性。
        select * from emp e join dept d on e.deptno=d.deptno where ...


左外连接:left outer join
    左外连接以FROM子句中的左边表为基表,该表所有行数据按照连接条件无论是否与右边表能


匹配上,都会被显示出来。


右外连接:right outer join
    右外连接以FROM子句中的右边表为基表,该表所有行数据按照连接条件无论是否与左边表能


匹配上,都会被显示出来。


全连接:full outer join
    全外连接返回两个表等值连接结果,以及两个表中所有等值连接失败的记录 







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值