首页 > 代码库 > 数据库(7)

数据库(7)

多表连接(就是把多个表变成一个表再去操作)


内连接(inner join...on)
  select...
  from 表1 inner join 表2 on 连接条件
  where...
  ...
  连接过程:链接过程:拿表1的每一条数据与表2的每一条数据根据链接条件去匹配,
       如果匹配到记录,则把这条匹配的数据放到新的结果集中.
       如果匹配不到记录,不放入结果集中,并且进行下一条的匹配.
  等价于:
    select ....
    from 表1,表2
    where 连接条件
  eg:求员工的薪资等级
    非等值条件
    select e.ENAME,s.GRADE from EMP e,SALGRADE s where e.SAL between s.LOSAL and s.HISAL;

左|右外连接(主表的区别)
  语法:select * from 表1 left join 表2 on 连接条件
  语法:select * from 表1 right join 表2 on 连接条件
  连接过程:拿着主表(左外连接就是左边表,右外连接就是右边表)
      每一条记录与从表的每一条记录按连接条件匹配,
      如果匹配到记录则把记录组合放到结果集中,
      如果朱彪的记录在从表中没有匹配到记录,则主表的记录,
      也会放入结果集中并且从表的记录的列的值是null.

技术分享
1 --外链接    
2 --左外链接
3 SELECT * FROM EMP  E LEFT JOIN DEPT D ON E.DEPTNO=D.DEPTNO;
4 --右外连接
5 SELECT * FROM DEPT D RIGHT JOIN EMP E ON E.EMPNO=D.DEPTNO;
示例

 

数据库(7)