数据库 连接(JOIN)
来源:互联网 发布:小明避税 知乎 编辑:程序博客网 时间:2024/06/05 09:49
连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
连接运算中有两种最为重要的连接,一种是等值连接(Equijoin),另一种是自然连接(Nature Join):等值连接是从关系R和S中的笛卡尔积中选取A,B属性值相等的那些元组;自然连接它要求两个关系中进行比较的分量必须是相同的属性组,并且把结果中重复的属性列去掉。
Example:
create table R ( A varchar2(10), B varchar2(10), C varchar2(10));insert into R(A,B,C) values ('a1','b1','5');insert into R(A,B,C) values ('a1','b2','6');insert into R(A,B,C) values ('a2','b3','8');insert into R(A,B,C) values ('a2','b4','12');create table S( B varchar2(10), D varchar2(10));insert into S(B,D) values ('b1','3');insert into S(B,D) values ('b2','7');insert into S(B,D) values ('b3','10');insert into S(B,D) values ('b3','2');insert into S(B,D) values ('b5','2');commit;
R
A
B
C
a1
b1
5
a1
b2
6
a2
b3
8
a2
b4
12
S
B
D
b1
3
b2
7
b3
10
b3
2
b5
2
关系R和关系S分别如上图所示。
1、一般连接(C<D)
R-S(C<E)
A
R.B
C
S.B
D
a1
b1
5
b1
3
a1
b1
5
b2
10
a1
b2
6
b2
7
a1
b2
6
b3
10
a2
b3
8
b3
10
2、等值连接(select * from (select* from R) Rjoin (select* from S) Son R.B=S.B)
A
R.B
C
S.B
D
a1
b1
5
b1
3
a1
b2
6
b2
7
a2
b3
8
b3
10
a2
b3
8
b3
2
3、自然连接(select A,S.B(R.B)as B,C,Dfrom (select* from R) Rjoin (select* from S) Son R.B=S.B)
A
B
C
D
a1
b1
5
3
a1
b2
6
7
a2
b3
8
10
a2
b3
8
2
4、外连接(Outer JOIN)
A
B
C
D
a1
b1
5
3
a1
b2
6
7
a2
b3
8
10
a2
b3
8
2
a2
b4
12
NULL
NULL
b5
NULL
2
4.1 左外连接(Left Join:select A,S.B(R.B)as B,C,Dfrom (select* from R) RLeft join (select * from S) S on R.B=S.B)
只保留左边关系R中要舍弃的元组。
A
B
C
D
a1
b1
5
3
a1
b2
6
7
a2
b3
8
10
a2
b3
8
2
a2
b4
12
NULL
4.2 右外连接(Right Join:select A,S.B(R.B)as B,C,Dfrom (select* from R) Rright join (select * from S) S on R.B=S.B)
只保留右边关系S中要舍弃的元组。
A
B
C
D
a1
b1
5
3
a1
b2
6
7
a2
b3
8
10
a2
b3
8
2
NULL
b5
NULL
2
- 数据库 连接(JOIN)
- 数据库中的连接(JOIN)
- 数据库查询中的连接操作(join)
- 数据库中几种join(连接)的用法
- Sql 数据库 join 连接
- 【数据库】Join连接
- 数据库的join连接
- 数据库中的join连接
- 数据库中左连接(left join)和右连接(right join)的区别
- 数据库查询连接(JOIN)用法
- MYSQL数据库-(十三)- join连接讲解、多表删除
- oracle 数据库中几种连接方式执行过程(nested loop、hash join、sort order join)
- 数据库的外连接(OUTER JOIN),内连接(INNER JOIN)和交叉连接(CROSS JOIN)区别
- 数据库中的左连接(left join),右连接(right join)和内连接(inner join)
- 数据库表间连接 inner join left join
- 数据库表的连接用法详解(join)
- 数据库表的连接 join on
- 数据库——SQL中的join连接
- win7 80端口被system占用
- 100个动规方程
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
- WAVEFORMATEX 格式说明
- JDK中设计模式
- 数据库 连接(JOIN)
- SQL之学生选课数据库
- 源代码学习笔记
- 367. Put the cart before the horse. 本未倒置
- 装修后才知道的79件事,无数网友真金白银砸出来的经验
- 网页设计第一章(第一课(2013-4-7))
- 央视《家有妙招》整理版,共250招,值得永远收藏
- MD5算法产生多少位的消息摘要?
- 深入浅出级联删除