2016년 10월 31일 월요일

69day / Framework / MyBatis & Join

https://dsin.wordpress.com/2013/03/16/sql-join-cheat-sheet/
EQUI JOIN / NON-EQUI JOIN / SELF JOIN / OUTER JOIN


기존에 배운 join + 추가 join + MyBatis에서의 활용을 배웠다

  • Join이란 

Oracle은 관계형 데이터베이스이기 때문에 다양한 정보들이 여러 테이블에 분산되어 있다. 
때문에 각 테이블끼리는 서로 특정한 규칙이나 관계가 있도록 설계되어 있다. 
여러 곳에 분산되어 있는 데이터들 중에서 사용자가 원하는 데이터를 모두 찾으려면 
여러 테이블을 다 조회해야 한다.

EQUI JOIN
조인 대상이 되는 두 테이블에서 공통적으로 존재하는 컬럼의 값이
일치되는 행을 연결하여 결과를 생성하는 조인 기법이다.

NON-EQUI JOIN
동일 컬럼이 없이 다른 조건을 사용하여 조인 쓰인다.

Outer JOIN
일반적인 조인은 테이블간의 컬럼에 일치되는 값이 없으면 데이터 조회가 안된다 
↳ 조인 조건에 만족하지 않는 행도 나타내는 조인 기법
예를 들면 부서 정보는 10,20,30,40 이 있지만
40번 부서는 사원 정보가 없으므로
사원과 부서의 equi join 시에
40번 부서에 대한 정보는 조회되지 않는다
이와 같이 일반적인 조인으로는 조회되지 않는
 정보까지 모두 조회하기 위해 Outer Join을 사용한다.
( 사원이 없는 부서의 정보까지 함께 조회하기 위해 사용 )

해결방법
join 조건에 (+) 을 명시 ( 조인시킬 값이 없는 측에 표기 ) 

SELECT column ...
FROM table1,table2
WHERE table1.컬럼 (+)= table2.컬럼

Self JOIN
자기 자신과 조인을 하는 기법이다.
조인은 서로 다른 두 개의 테이블을 연결하기도 하지만
하나의 테이블 내에서 조인을 해야만 자료를 얻을 수 있는 경우에 쓰인다.

0 개의 댓글:

댓글 쓰기