田七人参泡酒配方:ORACLE关联查询

来源:百度文库 编辑:偶看新闻 时间:2024/05/07 13:35:20
ORACLE关联查询 2009-12-13 18:24:53标签:ORACLE 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jxwpx.blog.51cto.com/15242/242980 关联查询
      多张表,而表与表之间是有联系的       是通过字段中的数据的内在联系来发生
       而不是靠相同的字段名来联系的或者是否有主外键的联系是没有关系的
      select dname,ename from emp,dept;
         笛卡尔积  (无意义的)
      --当2个表作关联查询的时候一定要写关联的条件
      --N个表 关联条件一定有N-1个      select dname,ename from mydept,myemp
       where mydept.no = myemp.deptno;
      多表查询的时候一定要有关联的条件
        --使用的表的全名
        select dname,ename from emp,dept
         where emp.deptno = dept.deptno ;
       
        --使用表的别名
         select dname,ename,a.deptno from emp a,dept b
         where a.deptno = b.deptno and a.deptno = 10;       --等值连接(内连接-两个表的数据作匹配a.deptno = b.deptno )
         select dname,ename,a.deptno from
         emp a inner join dept b
         on a.deptno = b.deptno;
         where a.deptno = 10;       --on写连接条件的
       --where中写别的条件       --使用where/on
         select dname,ename,a.deptno from emp a,dept b
         where a.deptno = b.deptno and a.deptno=10;
        
          --on中写连接条件
          --where中写其他的条件
          select dname,ename,a.deptno from
         emp a inner join dept b
         on a.deptno = b.deptno
         where a.deptno = 10 ;       --外连接
         左外连接 右外连接  全外连接
         (+)写法只有在ORACLE中有效
        select dname,ename,b.deptno
        from emp a,dept b
        where a.deptno(+) = b.deptno;
       --标准写法
         select dname,ename,b.deptno
        from emp a right outer join dept b
        on a.deptno = b.deptno;        
        select dname,ename,b.deptno
        from emp a,dept b
        where a.deptno = b.deptno(+);
    --标准写法
         select dname,ename,b.deptno
        from emp a left outer join dept b
        on a.deptno = b.deptno;             --标准写法(全外联) 
           select dname,ename,b.deptno
        from emp a full outer join dept b
        on a.deptno = b.deptno;    
  
    --自连接
        select a.ename as 员工姓名,b.ename as 经理名字 from emp a,emp b
        where a.mgr = b.empno(+);
              a.empno = b.mgr  ???????

本文出自 “网络数据优化与安全_jxwpx” 博客,请务必保留此出处http://jxwpx.blog.51cto.com/15242/242980