zoukankan      html  css  js  c++  java
  • Oracle中的一连接语句

    首先构建场景

    相应表中数据如下:

    1 SELECT * FROM EMPLOYEE;

    1 SELECT * FROM DEPTINFO;

    连接方式:

    1、 ,

    1 SELECT E.EMPNAME, D.DEPNAME
    2   FROM EMPLOYEE E, DEPTINFO D
    3  WHERE E.DEPTID = D.DEPID
    4  ORDER BY DEPNAME;

    由此可见“,”连接是将两张表进行等值连接

    2、join

    1 SELECT E.EMPNAME, D.DEPNAME
    2   FROM EMPLOYEE E
    3   JOIN DEPTINFO D
    4     ON E.DEPTID = D.DEPID
    5  ORDER BY DEPNAME;

    3、inner join

    1 SELECT E.EMPNAME, D.DEPNAME
    2   FROM EMPLOYEE E
    3  INNER JOIN DEPTINFO D
    4     ON E.DEPTID = D.DEPID
    5  ORDER BY DEPNAME;

    “,”,join,inner join都是等值连接,所谓等值连接是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,如上的例子就是从EMPLOYEE和DEPTINFO两张表的公共数据项(DEPTID)相同的那些数据项

    4、left join

    1 SELECT E.EMPNAME, D.DEPNAME
    2   FROM EMPLOYEE E
    3  LEFT JOIN DEPTINFO D
    4     ON E.DEPTID = D.DEPID
    5  ORDER BY DEPNAME;

    LEFT JOIN是左连接,就是用左表EMPLOYEE去匹配右表DEPTINFO,当找不到相应的数据项的时候就置空。因此这种组合左表中的数据会全部显示,右表中的数据只显示与左表中可以匹配的.上面的查询语句可以理解为,查找每个员工的部门.

    5、right join

    1 SELECT E.EMPNAME, D.DEPNAME
    2   FROM EMPLOYEE E
    3  RIGHT JOIN DEPTINFO D
    4     ON E.DEPTID = D.DEPID
    5  ORDER BY DEPNAME;

    RIGHR JOIN是右连接,就是用右表DEPTINFO去匹配左表EMPLOYEE,当找不到相应的数据项的时候就置空。因此这种组合右表中的数据会全部显示,左表中的数据只显示与右表中可以匹配的.上面的查询语句可以理解为,查看所有部门的员工分布情况.

  • 相关阅读:
    散列表
    5月19日
    5月17日阅读笔记3
    5月15日 阅读笔记2
    5月14日 阅读笔记1
    团队5
    团队博客2
    团队博客4
    团队博客3
    团队博客1
  • 原文地址:https://www.cnblogs.com/zhaowencong/p/4210615.html
Copyright © 2011-2022 走看看