内连接和外连接
举例说明,当前有表emp 和表dept,查询员工对应的部门名。
员工表emp
部门表dept
内连接
内连接就是普通的查询。inner可以省略。
代码:
select e.ename,d.dname
from emp e join dept d
on e.deptno = d.deptno;
结果:
外连接
1、分为左外连接和右外连接
带有right的是右外连接,又叫做右连接。
带有left的是左外连接,又叫做左连接。
任何一个右连接都有左连接的写法。
任何一个左连接都有右连接的写法。
2、在外连接当中,两张表连接,产生了主次关系。
代码:
select e.ename,d.dname
from emp e right join dept d
on e.deptno = d.deptno;
right代表什么:表示将join关键字右边的这张表看成主表,主要是为了将这张表的数据全部查询出来,捎带着关联查询左边的表。在外连接当中,两张表连接,产生了主次关系。
结果:
可以看到,右外连接多一条记录,即部门名OPERATIONS对应员工名为空的记录。
总结:
内连接是A和B连接,AB两张表没有主次关系,是平等的。内连接的特点是将完全能够匹配上筛选条件的数据查询出来。在外连接当中A和B产生了主次关系,会产生一个主表。此外,外连接的查询结果条数一定是 >= 内连接的查询结果条数。