더북(TheBook)

쿼리 9-4를 자세히 살펴볼까요? 먼저 두 개의 테이블을 조인하므로 FROM 절에 각각 사원정보 테이블과 부서정보 테이블을 기술했습니다. 사원정보 테이블은 a, 부서정보 테이블은 b란 별칭을 두어 쿼리 구문에서 각 테이블의 컬럼 조회 시 a. 그리고 b. 형태로 사용했죠. WHERE 절에서는 두 테이블에 있는 공통 컬럼, 즉 조인 컬럼인 dept_id를 동등 연산자로 연결해 두 테이블에서 dept_id 값이 같은 건만 조회하도록 했습니다. 결과를 보면 dept_id 값이 1인 김유신의 경우 회계팀인 것을 알 수 있습니다.

특히 결과에서 눈여겨 볼 점은 dept_iddept_id_1 값입니다. dept_ida.dept_id, 즉 사원정보 테이블의 dept_id이며, dept_id_1은 부서정보 테이블의 dept_id 값입니다. SELECT 절에서 명칭이 동일한 컬럼을 나열할 경우, 오라클이 알아서 _1, _2를 붙여주는군요. 두 값이 같은 것을 보니 조인이 제대로 수행됐음을 알 수 있습니다.

내부 조인 쿼리는 동등 연산자를 사용하는 방법 외에 다른 형식으로 작성할 수도 있습니다. 바로 ANSI 조인이 그 주인공이죠. ANSI 조인은 ANSI를 따르는 구문으로 과거에는 오라클에서 지원하지 않았지만 표준을 따르는 대세에 맞춰 현재는 지원하고 있습니다. 쿼리 9-4를 ANSI 조인 문법으로 작성한 쿼리는 다음과 같습니다.

쿼리 9-5 ANSI 구문으로 작성한 내부 조인

SELECT a.emp_id, a.emp_name, a.gender, a.age, a.dept_id,
       b.dept_id, b.dept_name, b.use_yn
  FROM emp_master a
 INNER JOIN dept_master b
    ON a.dept_id = b.dept_id
 ORDER BY a.emp_id;

 

▲ 그림 9-4 쿼리 9-5를 실행한 결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.