数据库 关系连接
<p><strong>连接分类</strong><br>
关系间的连接分为内连接(inner join)和外连接(outer join)。<br>
外连接又可分为:left outer join,right outer join和full outer join。<br><br><strong>内连接计算方法: </strong><br>
如果不加条件将会产生笛卡尔积;<br>
如果有连接条件,按照下一节"连接条件"的规则进行运算,符合条件的元组放入结果关系中。<br><br><strong>left outer join 计算过程:</strong><br>
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;<br>
2)如果左关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足<br><br><strong>right outer join 计算过程:</strong><br>
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;<br>
2)如果右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足<br><br><strong>full outer join </strong><br>
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;<br>
2)如果左、右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足<br><br>
as用来修改连接后结果关系的关系名称以及属性名称。<br><br><br><strong>连接条件</strong><br>
关系之间的连接是可以有条件的,外连接必须要加条件,内连接如果不加条件将会产生笛卡尔积。<br>
有哪些连接条件呢?<br>
natural --<br>
1)两个关系(左关系和友关系)中所有具有相同的名称的属性的值要相等。<br>
2)natural 总是出现在 join语句前面<br>
3)natural的结果关系中,相同名称的属性只会出现一次<br>
4)natural的结果关系中,属性的排列顺序总是按照左关系优先的原则。<br>
5) MySQL中,natural join不能使用on指定其他查询条件<br>
on--<br>
1)on 用在join语句后面<br>
2)on 后面采用关系1.属性a=关系2.属性b 的谓词语法<br><br>
using--<br>
1)和natural类似,只是显式指定了属性名称<br>
2)如果using也指定了所有相同名称的属性,那么和natural相同<br><br><br>
MySQL<br>
MySQL中,natural join和 left outer join不能在同时使用,可以先将natural join语句做成一个view,然后再使用left outer join<br>
join 默认为inner join</p>
頁:
[1]