SQL 5-3. 자연 조인 작성
관련링크
본문
․ NATURAL JOIN 절은 두 테이블에서 동일한 이름을 가진 모든 열을 기준으로 합니다.
․ 두 테이블의 일치하는 모든 열에서 같은 값을 가진 행을 (자동으로?) 선택합니다.
․ 동일한 이름을 가진 열의 데이터 유형이 서로 다를 경우 오류가 반환됩니다.
․ 선생님께서 정확한 데이타가 나오지 않을 가능성이 있어 사용하지 말길 권장
오라클의 이전 릴리스에서는 해당 테이블의 열을 명시적으로 지정하지 않으면 조인을 수행할 수 없었다.
Oracle9i의 경우, NATURAL JOIN 키워드를 사용하면 일치하는 데이터 유형 및 이름을 가진 두 테이블의 열을 기준으로 자동으로 조인을 수행할 수 있습니다.
참고 : 조인은 두 테이블 모두에 동일한 이름과 데이터 유형을 가진 열에서만 가능하다.
열의 이름이 같지만 데이터 유형이 다를 경우 NATURAL JOIN구문에서 오류가 발생합니다.
MSSQL에서는 지원되지 않는다.
예제)
오라클 디비 예제 :
SELECT department_id, department_name, location_id, city
FROM departments NATURAL JOIN locations;
☞설명) 자연 조인으로 레코드 검색
예제에서, LOCATIONS테이블은 DEPARTMENT테이블과 두 테이블사이에서 유일하게 이름이 같은 열인 LOCATION_ID열을
통해 조인된다.
다른 공통 열이 존재할 경우에는 이들 열도 함께 조인에 사용됩니다.
다음과 동일한 결과를 생성합니다.(등가 조인)
예제) WHERE 절을 포함하는 자연 조인
WHERE절을 사용하여 자연 조인에 제한을 추가할 수 있습니다. 아래 예제는 부서ID가 20또는50인 행(row)으로 출력 결과를 제한한다.
SELECT department_id, department_name, location_id, city
FROM departments NATURAL JOIN locations
WHERE department_id in (20, 50);