zoukankan      html  css  js  c++  java
  • Oracle多表查询

     
    SQL> --等值连接
    SQL> select e.empno,e.ename,e.sal,d.dname
      2  from emp e,dept d
      3  where e.deptno=d.deptno;
    等值操作会忽略某个表中单独存在的东西
     
    SQL> -- 不等值连接
     
    SQL> select e.empno,e.ename,e.sal,s.grade
      2  from emp e,salgrade s
      3  where e.sal between s.losal and s.hisal;
     
    SQL> --外连接:
    SQL> -- 按部门统计员工信息:部门号 部门名称  人数
    SQL> /*
    SQL> 当某个字段的数据值存在单独的表中,任然希望包含在最后的结果中
    SQL> 左外连接:当where e.deptno=d.deptno不成立的时候,等号左边的表任然被包含在最后的结果中
    SQL>     写法:where e.deptno=d.deptno(+)
    SQL> 右外连接:当where e.deptno=d.deptno不成立的时候,等号右边的表任然被包含在最后的结果中
    SQL>     写法: where e.deptno(+)=d.deptno
    SQL> */
    语句是一样的,都依照范围大的表的字段
    SQL> select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数
      2  from emp e,dept d
      3  where e.deptno(+)=d.deptno
      4  group by d.deptno,d.dname;
     
    SQL> --自连接:通过表的别名,将同一张表视为多张表
    SQL>  --自连接:不适合操作大表
    SQL> select e.ename 员工姓名,b.ename 老板姓名
      2  from emp e,emp b
      3  where e.mgr=b.empno;
     
    SQL> --层次查询
    SQL> select level,empno,ename,mgr//level代表树的深度,当前节点所在深度
      2  from emp
      3  connect by prior empno=mgr链接查询的条件,父节点的员工号=子节点的老板号
      4  start with mgr is null开始的节点位置,该节点的老板号为空
      5  order by 1;排序
    层次查询是将所有的数据按照一定的规则读成一棵树,然后对数按要求检索
    结果:
         LEVEL      EMPNO ENAME           MGR
    ---------- ---------- -------- ----------
             1       7839 KING
             2       7566 JONES          7839
             2       7698 BLAKE          7839
             2       7782 CLARK          7839
             3       7902 FORD           7566
             3       7521 WARD           7698
             3       7900 JAMES          7698
             3       7934 MILLER         7782
             3       7499 ALLEN          7698
             3       7788 SCOTT          7566
             3       7654 MARTIN         7698
             3       7844 TURNER         7698
             4       7876 ADAMS          7788
             4       7369 SMITH          7902
     
    已选择14行。
     
  • 相关阅读:
    878. 第 N 个神奇数字
    Leetcode 239. 滑动窗口最大值
    欢天喜地七仙女——Beta冲刺三
    欢天喜地七仙女——Beta冲刺二
    欢天喜地七仙女——Beta冲刺一
    欢天喜地七仙女——Beta冲刺凡事预则立
    欢天喜地七仙女——Beta冲刺代码规范与计划
    欢天喜地七仙女Alpha总结展望——前事不忘后事之师
    欢天喜地七仙女——Alpha测试随笔
    欢天喜地七仙女——Alpha冲刺总结
  • 原文地址:https://www.cnblogs.com/anzhi/p/7515740.html
Copyright © 2011-2022 走看看