• 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行。
     
  • 相关阅读:
    Linux下常用的ctrl命令
    网络编程函数笔记(二)
    javascript中函数构造器和原型研究
    javascript对象定义需开辟内存空间才能访问
    读取iframe里面的js全局变量
    网络编程函数笔记(一)
    Inside.MySQL_InnoDB.Storage.Engine 学习笔记
    jquery对象原理笔记(一)
    javascript(一)正则表达式
    c++学习笔记(模板)(一)
  • 原文地址:https://www.cnblogs.com/anzhi/p/7515740.html
Copyright © 2020-2023  润新知