JOIN : 2개 이상의 테이블을 연결하여 데이터를 출력하는 방법. 보통 공통된 값인 PK or FK의 값을 사용한다.
JOIN의 종류 : NON EQUI JOIN / EQUI JOIN
1. NON EQUI JOIN : 테이블간에 일치하는 칼럼값이 존재하지 않을 경우 사용. '=' 연산자 이외의 연산자 사용
ex) SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A, TABLE2 B
WHERE A.CUSNO IN B.REFNO
2. EQUI JOIN : 그외 테이블간에 일치하는 칼럼값이 존재하는 경우 사용. '=' 연산자 사용
ex1) 단순 JOIN
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A, TABLE2 B
WHERE A.CUSNO = B.CUSNO
==> INNER JOIN 형태
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
(INNER) JOIN TABLE2 B
ON A.CUSNO = B.CUSNO
*단순 JOIN ( A*B 출력 )
SELECT * FROM TABLE1 A, TABLE2 B
SELECT * FROM TABLE1 A JOIN TABLE2 B
SELECT * FROM TABLE1 A CROSS JOIN TABLE2 B
ex2) NATURAL JOIN : 두 테이블의 동일한 이름을 가지는 칼럼이 모두 조인됨
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
NATURAL JOIN TABLE2 B
==>JOIN ~USING문을 활용하여 칼럼 선택하여 조인하는 방법
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
JOIN TABLE2 B
USING (CUSNO)
ex3) OUTER JOIN : JOIN 조건에서 한쪽에 값이 없더라도 행을 반환하는 JOIN방식
1) LEFT OUTER JOIN : 왼쪽에 표기된 테이블을 기준으로 OUTER JOIN 수행
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
LEFT OUTER JOIN TABLE2 B
ON A.CUSNO = B.CUSNO
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A, TABLE2 B
WHERE A.CUSNO = B.CUSNO(+)
2) RIGHT OUTER JOIN : 오른쪽에 표기된 테이블을 기준으로 OUTER JOIN 수행
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
RIGHT OUTER JOIN TABLE2 B
ON A.CUSNO = B.CUSNO
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A, TABLE2 B
WHERE A.CUSNO(+) = B.CUSNO
3) FULL OUTER JOIN : (LEFT OUTER JOIN 결과) U (RIGHT OUTER JOIN 결과)
SELECT A.COLUMN1, B.COLUMN2
FROM TABLE1 A
FULL OUTER JOIN TABLE2 B
ON A.CUSNO = B.CUSNO
'데이터베이스 > ORACLE' 카테고리의 다른 글
[오라클 함수] 정규식 함수/정규 표현식(Regular Expression) (0) | 2020.07.23 |
---|---|
[오라클 함수] EXISTS, NOT EXISTS (0) | 2020.07.21 |
[오라클 함수] TRIM, LTRIM, RTRIM, LPAD, RPAD (0) | 2020.07.20 |
[오라클 함수] LAG, LEAG (0) | 2020.07.19 |