连接查询(列连接)
问题:学生表有10条数据,成绩表中有10条数据连接之后有多少条数据(笛卡儿积):10*10
连接查询会产生笛卡儿积:假设集合A={啊,b},集合B={c,d}
2个集合的笛卡儿积{(a,c)(a,b)(b,c)(b,d)}
但是:
(1)从数据结果来讲,有很多无用的数据
(2)通过where 条件过滤无用的数据:通过主外键来清楚无用数据
使用主外键清楚无用数据
Select *from emp,dept where emp.deptno=dept.deptno;
11.5.1内连接
上面的写法其实就是内连接,但是不在SQL标准
标准写法:
Select
*
From
Emp e
Inner join
Dept d
On
e.deptno=d.deptno;
(1)inner 可以省略
(2)内连接的特点:查询的条件必须满足条件,不满足条件的数据将会丢失
部门是40的数据就没有了,员工emp中没有40这个部门的人
11.5.2外连接outer join
A left B:A左连接B表:A表示主表
B left A:B左连接A表:B表示主表
A right B:A右连接B表:B表示主表
B right A:B右连接A表:A表示主表
539

被折叠的 条评论
为什么被折叠?



