데이터베이스 연구실.log

ANSI 조인 문법

1999 ANSI 표준 조인 문법인 JOIN ... ON, JOIN ... USING, NATURAL JOIN의 사용법과 별칭 사용 제한

ANSI JOINJOIN ONUSINGNATURAL JOINCROSS JOIN1999 ANSI

#핵심 요약

1999 ANSI 문법은 다섯 가지임
ON 절 조인, USING 절 조인, NATURAL 조인, LEFT/RIGHT/FULL OUTER 조인, CROSS 조인

FROM emp e JOIN dept d ON (e.deptno = d.deptno): 쉼표 대신 JOIN을 쓰고 조인 조건은 ON 절에 씀
다른 검색 조건은 WHERE에 둠

JOIN dept d USING (deptno): 같은 이름의 컬럼으로 잇음
컬럼을 괄호로 감싸고, USING 절의 컬럼 앞에 테이블 별칭을 쓰면 오류임

NATURAL JOIN: 같은 이름의 컬럼으로 자동으로 잇음
조인에 쓰인 컬럼(deptno)은 SELECT 절에서도 별칭이나 테이블명을 붙일 수 없음

#개념과 동작 원리

문법 조인 조건 위치 공통 컬럼 별칭
JOIN ... ON (조건) ON 절 붙여야 함(양쪽 컬럼을 구분)
JOIN ... USING (컬럼) USING 절 붙이면 오류
NATURAL JOIN 자동(같은 이름 컬럼) 붙이면 오류

USING과 NATURAL에 사용한 공통 열은 테이블명, 별칭으로 한정하지 않음
CROSS JOIN은 실습 목록에만 있고 예제가 없음

#주요 용어와 구성 요소

구문 의미
내부 조인 조인 조건을 만족하는 행 조합을 반환함
카티션 곱 두 입력의 가능한 행 조합 전체이며 조건이 누락된 조인에서도 발생할 수 있음

#필수 명령어 또는 SQL

항목 실행 조건
작업 대상 emp, dept, salgrade의 행 조합과 공통 열
필요 권한 모든 입력 테이블에 대한 조회 권한이 있는 계정
바꿀 입력값 테이블, 별칭, 조인 열, 필터 조건
결과 해석 CROSS JOIN의 실습 출력은 기재 없음

#ON 절

SQL Developer 또는 SQL*Plus조회만 함
SELECT e.ename, e.job, e.sal, d.loc
  FROM emp e JOIN dept d
    ON (e.deptno = d.deptno);

SELECT e.ename, e.sal, d.loc
  FROM emp e JOIN dept d
    ON (e.deptno = d.deptno)
 WHERE d.loc = 'DALLAS';

SELECT e.ename, e.sal, d.loc, s.grade
  FROM emp e JOIN dept d
               ON (e.deptno = d.deptno)
             JOIN salgrade s
               ON (e.sal BETWEEN s.losal AND s.hisal);

결과 해석: 세 번째 문장은 테이블이 셋이라 연결 고리(ON 절)가 둘임

#USING 절

SQL Developer 또는 SQL*Plus조회만 함
SELECT e.ename, e.job, e.sal, d.loc
  FROM emp e JOIN dept d
 USING (deptno);

SELECT e.ename, e.sal, d.loc
  FROM emp e JOIN dept d
 USING (deptno)
 WHERE e.sal >= 3000;

결과 해석: 개별 실행 출력은 기재 없음

#NATURAL JOIN

SQL Developer 또는 SQL*Plus조회만 함
SELECT e.ename, d.loc, deptno
  FROM emp e NATURAL JOIN dept d;

결과 해석:

설명(SQLD, SQLP 기출): deptno에 e.나 d.를 붙이면 오류임

#구문과 옵션 설명

CROSS JOIN은 두 입력의 카티션 곱임
ON은 조인 조건을 명시하고 USING은 이름이 같은 열을 지정하며 NATURAL은 모든 동일 이름 열을 사용함

#사용 조건과 주의사항

NATURAL JOIN은 같은 이름의 컬럼을 모두 조인 조건으로 씀
두 테이블에 이름만 같고 뜻이 다른 컬럼이 있으면 동일 이름 열이 추가되면 조인 조건도 늘어날 수 있으므로 스키마 변경 때 확인해야 함

ON의 열 이름이 양쪽 테이블에서 겹치면 별칭으로 어느 쪽 열인지 구분함
조인 조건 누락은 대량의 행 조합을 만들 수 있으므로 출력 건수와 업무상 연결 조건을 함께 확인함

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기