1. 조인(Join)
1-1. 조인(Join)이란?
- 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법으로 두개의 테이블을 마치 하나의 테이블인 것처럼 보여주는 것이다.
1-2. Join의 기본 사용 방법
- 두 개의 테이블에 하나라도 같은 컬럼이 있어야 한다
- 두 컬럼의 값은 공유되어야 한다
- 보통 조인을 위해 기본키(primary key)와 외래키(Foregin key)를 활용 한다.
1-3. Inner Join 두개의 테이블에 공통
- 각 테이블에서 조인 조건에 일치되는 데이터만 가져온다
- 교집합
1-4. Outer Join
- 조인 조건에 일치하는 데이터 및 일치하지 않은 데이트를 모두 select 한다
- 조인 조건에 일치하는 데이터가 없다면 NULL로 가져온다.
- Outer join은 Inner join과는 다르게 주 테이블이 어떤 테이블인지가 중요하다. 그래서 어떤 테이블이 중심이 되느냐에 따라 다시 Left Outer Join, Right Outer Join, Full Outer Join으로 세분화 할 수 있다.
2. Outer Join 종류
2-1. Left Outer Join
- 왼쪽 테이블이 기준이 된다.
- 조인 조건에 부합하는 데이터가 조인 당하는 테이블(오른쪽)에 있으면 해당 데이터를, 부재하면 NULL로 select된다.
- select * from table A (tl) left outer join table B (t2) (알리아스)
2-2. right outer join
- 오른쪽 테이블이 기준이 된다
- 조인 조건에 부합하는 데이터가 조인 당하는 테이블에 있으면 해당 데이터를, 부재하면 NULL로 select가 된다.
- select * from table A (tl) right outer join table B (t2)
2-3. full outer join (속도가 느려진다) (잘 쓰지 않는다)
- 양쪽 테이블 모두가 기준이 된다
- 조인 조건에 부합하는 데이터가 조인 당하는 테이블에 있으면 해당테이블을, 부재하면 NULL로 SELECT 된다.
서로 다른 테이블에서 정보를 가져오기 위해 inner join을 활용해서 각 테이블에서 조인 조건에 일치되는 데이터를 가져옵니다.
정확히 어떤 테이블에서 가져오는 알기 위해서. 앞에, d. e.를 잘 구분합니다.
LEFT OUTER JOIN은 왼쪽 테이블이 기준이 되고 RIGHT OUTER JOIN은 오른쪽 테이블이 기준이 됩니다. 그래서 EMPLOYEES e가 기준이 되냐 아니면 DEPARTMENTS d가 기준이 되냐에 따라 결과값에 영향을 끼치게 됩니다. 위의 식에서처럼 무엇이 기준이 되냐는 문제로 인해 출력되는 정보들의 숫자가 달라지게 됩니다. (RIGHT OUTER JOIN을 했을 때 null값을 포함한 정보들의 양이 더 많이 나오는 것을 확인할 수 있습니다.)
-해설
inner join을 활용하면 세개 이상의 테이블에서 정보를 가져올 수도 있습니다. 위에 처럼 EMPLOYEE e뿐만 아니라 DEPARTMENT d, LOCATION I 심지어 JOB j까지 총 네개의 테이블에 흩어져 있는 정보들을 출력할 수 있습니다. 출력방법은 각 테이블에 겹치는 정보들을 이어나가면서 inner join한 다음. 마지막에 WHERE을 활용해서 seattle에 사는 직원들의 정보만을 출력하면 됩니다.
full outer join은 양쪽 테이블에 있는 모든 정보를 기준으로 하기에 출력량이 많아집니다. 위의 식을 처리하면 EMPLOYEE e와 DEPARTMENT d의 SELECT된 모든 정보가 함께 출력되는 것을 확인할 수 있습니다.