您的位置:首页 > 数据库

sql-99标准连接的语法

2015-08-02 14:26 796 查看
总体的语法如下:

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

全外连接返回两个表等值连接结果,以及两个表中所有等值连接失败的记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: