: 하나 이상의 테이블에서 데이터를 조회하기 위해 사용.
: 수행 결과는 하나의 Result Set으로 나옴.
: (참고) JOIN은 서로 다른 테이블의 행을 하나씩 이어 붙이기 때문에 시간이 오래 걸리는 단점이 있다!
: 연결되는 컬럼의 값이 일치하는 행들만 조인됨. (== 일치하는 값이 없는 행은 조인에서 제외됨.)
: INNER JOIN(내부조인) 시 문제점!
--> 연결에 사용된 컬럼의 값이 일치하지 않으면 조회결과에 포함되지 않는다.
: ANSI 표준 구문
-- ANSI는 미국 국립 표준 협회를 뜻함, 미국의 산업표준을 제정하는 민간단체로
-- 국제표준화기구 ISO에 가입되어있다.
-- ANSI에서 제정된 표준을 ANSI라고 하고
-- 여기서 제정한 표준 중 가장 유명한 것이 ASCII코드이다.
: 오라클 전용 구문
-- FROM절에 쉼표(,) 로 구분하여 합치게 될 테이블명을 기술하고
-- WHERE절에 합치기에 사용할 컬럼명을 명시한다
연결에 사용할 두 컬럼명이 다른 경우
연결에 사용할 두 컬럼명이 일치할 경우
: 두 테이블의 지정하는 컬럼값이 일치하지 않는 행도 조인에 포함을 시킴
--> 반드시 OUTER JOIN임을 명시해야 한다.
: LEFT / RIGHT / FULL JOIN 으로 나뉜다
: 조인되는 테이블의 각 행들이 모두 매핑된 데이터가 검색되는 방법(곱집합/ 모든 경우의 수)
--> JOIN 구문을 잘못 작성하는 경우 CROSS JOIN의 결과가 조회됨
: '='(등호)를 사용하지 않는 조인문
: 지정한 컬럼 값이 일치하는 경우가 아닌, "값의 범위에 포함되는 행"들을 연결하는 방식
: 같은 테이블을 조인. (자기 자신과 조인을 맺음)
: TIP! 같은 테이블 2개 있다고 생각하고 JOIN을 진행
: -- 동일한 타입과 이름을 가진 컬럼이 있는 테이블 간의 조인을 간단히 표현하는 방법
: 반드시 두 테이블 간의 동일한 컬럼명, 타입을 가진 컬럼이 필요
--> 없을 경우 교차조인이 됨.
: N개의 테이블을 조회할 때 사용 (JOIN하는 순서가 중요하다!)
: 주민번호가 70년대 생이면서 성별이 여자이고, 성이 '전'씨인 직원들의 사원명, 주민번호, 부서명, 직급명을 조회하시오.
: 이름에 '형'자가 들어가는 직원들의 사번, 사원명, 직급명, 부서명을 조회하시오.
: 해외영업 1부, 2부에 근무하는 사원의 사원명, 직급명, 부서코드, 부서명을 조회하시오.
: 보너스포인트를 받는 직원들의 사원명, 보너스포인트, 부서명, 근무지역명을 조회하시오.
: 부서가 있는 사원의 사원명, 직급명, 부서명, 지역명 조회
: 급여등급별 최소급여(MIN_SAL)를 초과해서 받는 직원들의 사원명, 직급명, 급여, 연봉(보너스포함)을 조회하시오.
: 연봉에 보너스포인트를 적용하시오.
: SALARY (1 + NVL(BONUS,0) ) 12 연봉
: 한국(KO)과 일본(JP)에 근무하는 직원들의 사원명, 부서명, 지역명, 국가명을 조회하시오.
: 같은 부서에 근무하는 직원들의 사원명, 부서코드, 동료이름을 조회하시오.
: SELF JOIN 사용
: 보너스포인트가 없는 직원들 중에서 직급코드가 J4와 J7인 직원들의 사원명, 직급명, 급여를 조회하시오. 단, JOIN, IN 사용할 것