只说连接查询,不说子查询
内连接:
等值连接
非等值连接
交叉连接
A 表有n 行,B表有m 行
结果集中有n*m 行
自身连接(需要使用别名)
经典的查询每门课的间接先修课
select first.cno,second.cpno
from course first, course second
where first.cpno=second.cno;
外连接
在通常的连接操作中,只有满足连接条件的元组才能作为结果输出, 也就是上面的内连接,外连接则不然,即使从表没有匹配的元组,也会把主表的记录放在结果集中。
select student.*,sc.*
from student left outer join sc
on student.sno=sc.sno;
student 是主表,sc 是从表 需要注意的是用的是on 不是where
左外连接 left outer join
右外连接 right outer join
全外连接 full outer join
问题来了!!!为什么叫内连接和外连接呢???