개발 & 데이터베이스/DB

오라클 조인의 종류와 사용법 (내부조인, 외부조인)

K.두부 2022. 2. 10. 22:51
반응형

조인 정의

2개 이상의 서로 관계에 있는 테이블 내용을 1개의 결과셋으로 만드는 작업

 

조인의 종류

종류 설명
등가 조인 테이블을 연결한 후 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식
내부 조인, 단순 조인으로 부름
비등가 조인 등가 조인 외의 방식
열의 일치 여부를 알 수 없을 때 사용 (= 연산자를 제외한 연산자를 사용)
자체 조인 하나의 테이블을 여러 개의 테이블처럼 활용하여 조인하는 방식
SELECT문 내부에서 별칭을 다르게 주어 논리적으로 다른 테이블인 것처럼 명시
외부 조인 어느 한쪽이 NULL이어도 강제로 출력하는 방식

 

실습해보기

우선 테스트를 위해서 두 가지 테이블 생성한다.

CREATE TABLE EMP(
    EMPNO INTEGER NOT NULL,
    ENAME VARCHAR2(10) NOT NULL,
    SAL INTEGER,
    DEPTNO INTEGER
);

INSERT INTO EMP VALUES(1001, '두부',   5000, 100);
INSERT INTO EMP VALUES(1002, '강아지', 3000, 100);
INSERT INTO EMP VALUES(1003, '고양이', 2000, 100);
INSERT INTO EMP VALUES(1004, '기린',   7000, 100);
INSERT INTO EMP VALUES(2001, '사자',   2000, 200);
INSERT INTO EMP VALUES(2002, '원숭이', 1500, 200);
INSERT INTO EMP VALUES(2003, '개구리', 1000, 200);
INSERT INTO EMP VALUES(3001, '고래',   5500, 300);
INSERT INTO EMP VALUES(3002, '오리',   6000, 300);
INSERT INTO EMP VALUES(4001, '참새',   8000, 400);

CREATE TABLE DEPT(
    DEPTNO INTEGER,
    DNAME VARCHAR2(10)
);

INSERT INTO DEPT VALUES(100, '생산');
INSERT INTO DEPT VALUES(200, '행정');
INSERT INTO DEPT VALUES(300, '개발');
INSERT INTO DEPT VALUES(400, '기타');

1. 등가 조인

SELECT A.EMPNO
     , A.ENAME
     , A.SAL
     , B.DNAME
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO;

2. 비등가 조인

SELECT A.EMPNO
     , A.ENAME
     , A.SAL
     , B.DNAME
FROM EMP A, DEPT B
WHERE A.DEPTNO BETWEEN 100 AND 200;

3. 자체 조인

SELECT A.컬럼
     , B.컬럼
         .
         .
         .
FROM EMP A, EMP B
WHERE A.컬럼 = B.컬럼

 

4. 외부 조인

INSERT INTO EMP VALUES(5001, '돼지', 15000, 600);

SELECT A.EMPNO
     , A.ENAME
     , A.SAL
     , B.DNAME
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO(+);

반응형