Chapter 04 Joining Tables

download Chapter 04 Joining Tables

of 4

Transcript of Chapter 04 Joining Tables

  • 8/10/2019 Chapter 04 Joining Tables

    1/4

    chapter 4: joining Tables( retreive data from more than one table )---------------------------------------------------------------------What is join ?--------------1)cross Product:----------------Example:---------select empno,ename,sal,job,dname, locfrom emp , dept ;

    select empno , sal, job , dname , locfrom emp cross join dept ;

    2)Equi-join (inner join)( get only matched rows)---------------------------------------------------2.1 )Example:................select empno , ename , sal, job , dname , locfrom emp , deptwhere emp.deptno = dept.deptno ;

    2.2 Natural Example-------------------

    select empno , ename , sal, job , dname , locfrom emp natural join dept ;

    2.3 Using Example-----------------

    select empno , ename , sal, job , dname , locfrom emp join deptusing ( deptno );

    2.4) on Example---------------select empno , ename , sal, job , dname , loc

    from emp join depton ( emp.deptno=dept.deptno );

    3)non-equijoin--------------select empno , ename , job , sal , grade , losal , hisalfrom emp , salgradewhere sal between losal and hisal ;

    select empno , ename , job , sal , grade , losal , hisalfrom emp join salgradeon (sal between losal and hisal );

    4) outer join (get matched and not matched rows):-------------------------------------------------4.1 ) left outer join-----------------------select empno , ename , dname , locfrom emp left outer join depton (emp.deptno = dept.deptno) ;

    4.2) right outer join----------------------

  • 8/10/2019 Chapter 04 Joining Tables

    2/4

    select empno , ename , dname , locfrom emp right outer join depton (emp.deptno = dept.deptno) ;

    4.3 ) full outer join---------------------select empno , ename , dname , locfrom emp full outer join depton (emp.deptno = dept.deptno) ;

    select empno , ename , sal, job , dname , locfrom emp , deptwhere ( emp.deptno (+) = dept.deptno );

    select empno , ename , sal, job , dname , locfrom emp , deptwhere ( emp.deptno = dept.deptno (+) );

    5) Self join :-------------select w.empno , w.ename , w.job , w.sal , w.mgr , m.ename as manager_namefrom emp w join emp mon ( w.mgr = m.empno ) ;

    select w.empno , w.ename , w.job , w.sal , w.mgr , m.ename as manager_namefrom emp w left outer join emp mon ( w.mgr = m.empno ) ;

    6) joining more than two tables:---------------------------------select first_name , last_name , department_name , city , street_addressfrom employees join departments on (employees.department_id =departments.department_id) join locations on (departments.location_id = locations.location_id) ;

    to join n tables you need n-1 join condidtion .

    7) additional conditions :--------------------------select empno , ename , sal, job , dname , locfrom emp natural join deptwhere job = 'SALESMAN' ;

    select empno , ename , sal, job , dname , locfrom emp join deptusing ( deptno )where sal > 2000

    select empno , ename , sal, job , dname , loc

    from emp join depton ( emp.deptno=dept.deptno )and emp.deptno = 30 ;

    select empno , ename , sal, job , dname , locfrom emp , deptwhere ( emp.deptno=dept.deptno )and emp.deptno = 30 ;

    ********************************************************************************

  • 8/10/2019 Chapter 04 Joining Tables

    3/4

    *using sets:-----------

    syntax:--------

    a = { 1 ,2, 3 }b = { 2, 4, 5 }

    a union b = { 1,2,3,4,5}a union all b = { 1,2,3,2,4,5}a intersect b = {2}a minus b = {1,3}

    select statement 1union | union all | intersect | minusselect statement 2

    Example:--------select empno , enamefrom empunion

    select deptno , dnamefrom dept ;

    select empno , ename , jobfrom empMinusselect deptno , dname ,locfrom dept ;

    select empno , ename , jobfrom empintersectselect deptno , dname ,loc

    from dept ;

    Matching columns-----------------select empno , ename , salfrom empunionselect deptno , dname ,0from dept ;

    select empno , ename , ''from empunion

    select deptno , dname ,locfrom dept ;

    order by certain column-----------------------select empno , ename , salfrom empunionselect deptno , dname , 0from dept

  • 8/10/2019 Chapter 04 Joining Tables

    4/4

    order by ename////////////////////////////////////////////////////////END////////////////////////////////////////////////////////////////