ANSI 조인은 ANSI SQL 문법을 사용한 조인을 말한다. 지금까지 설명했던 모든 조인을 ANSI SQL을 사용해 변환이 가능하다. 기존 문법과 ANSI 조인의 차이점은 조인 조건이 WHERE절이 아닌 FROM 절에 들어 간다는 점이다. 

 

1. ANSI 내부 조인

기존 문법과 ANSI 내부 조인 문법의 차이는 다음과 같다.

 

<기존 문법>

 

<ANSI 문법>

 

2003년 1월 1일 이후에 입사한 사원번호, 사원명, 부서번호, 부서명을 조회하는 쿼리를 비교해 보자.

 

◈ 예제

<기존 문법>

 

 

 

<ANSI 문법>

 

 

 

ANSI 내부 조인은 FROM절에서 INNER JOIN 구문을 쓴다. 조인 조건은 ON 절에 명시하고 조인 조건 외의 조건은 기존대로 WHERE 절에 명시한다. 만약 조인 조건 컬럼이 두 테이블 모두 동일하다면 ON 대신 USING 절을 사용할 수 있는데, 이때는 SELECT절에서 조인 조건에 포함된 컬럼명을 테이블명.컬럼명형태가 아닌 컬럼명만 기술해야 한다.

 

2. ANSI 외부 조인

ANSI 외부 조인도 그 형식은 내부 조인과 비슷하다. 기존 문법과 비교해 보자.

 

<기존 문법>

 

<ANSI 문법>

 

기존 문법에서는 기준 테이블과 대상 테이블(데이터가 없는 테이블)에서 대상 테이블쪽 조인 조건에 (+)를 붙였지만, ANSI 외부 조인은 FROM 절에 명시된 테이블 순서에 입각해 먼저 명시된 테이블 기준으로 LEFT 혹은 RIGHT를 붙이는 점이 다르다.

 

◈ 예제

<기존 문법>

 

 

 

<ANSI 문법>

 

 

 

위 쿼리는 사원 테이블이 기준이 되어 job_history 테이블을 LEFT OUTER JOIN으로 연결했는데 테이블 순서를 바꾸면 RIGHT OUTER JOIN으로 변경이 가능하다.

 

 

 

또한 외부 조인은 OUTER라는 키워드는 생략이 가능하다. LEFT JOIN 혹은 RIGHT JOIN이라고 명시해도 이는 외부 조인을 의미한다.

 

 

3. CROSS 조인

앞에서 WHERE 절에 조인 조건을 명시하지 않은 카타시안 조인이 있었다. 이를 ANSI 조인에서는 CROSS 조인이라고 하며 다음과 같이 작성한다.

 

◈ 예제

 

<기존 문법>

 

 

 

<ANSI 문법>

 

 

+ Recent posts