1. Table Join
- 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법.
일반적으로 테이블의 식별 값인 Primary Key와 테이블 간 공통 값인 Foreign Key 값을 사용하여 연결한다.

- Inner Join

SELECT [컬럼명]
FROM [테이블A] a,
[테이블B] b
WHERE a.조인키컬럼 = b.조인키컬럼
;
- Left-Outer Join

SELECT [컬럼명]
FROM [테이블A] a,
[테이블B] b
WHERE a.조인키컬럼 = b.조인키컬럼(+)
;
- Right-Outer Join

SELECT [컬럼명]
FROM [테이블A] a,
[테이블B] b
WHERE a.조인키컬럼(+) = b.조인키컬럼
;
- Full-Outer Join

SELECT [컬럼명]
FROM [테이블A] a
FULL OUTER JOIN [테이블B] b
ON a.조인키컬럼 = b.조인키컬럼
;
- Self Join
같은 테이블 내의 서로 다른 행을 조건으로 주고 싶다면, Self Join을 이용해 마치 서로 다른 테이블에서 가져온 듯 같은 테이블을 두 번 조회한다.
SELECT [컬럼명]
FROM [테이블A] a1,
[테이블A] a2
WHERE a1.조인키컬럼1 = a2.조인키컬럼2
;
- UNION / INTERSECT / MINUS
| Union (합집합) |
두 테이블의 결합, 중복은 제거되고 반환 | SELECT [컬럼명A] FROM [테이블A] UNION SELECT [컬럼명B] FROM [테이블B] ; |
| Union ALL (중복을 포함한 합집합) |
두 테이블 결합, 중복은 제거되지 않고 반환 | SELECT [컬럼명A] FROM [테이블A] UNION ALL SELECT [컬럼명B] FROM [테이블B] ; |
| INTERSECT (교집합) |
두 열 집합 중 중복되는 행을 반환 | SELECT [컬럼명A] FROM [테이블A] INTERSECT SELECT [컬럼명B] FROM [테이블B] ; |
| MINUS (차집합) |
두번째 SELECT에 존재하지 않는 행을 반환 | SELECT [컬럼명A] FROM [테이블A] MINUS SELECT [컬럼명B] FROM [테이블B] ; |
반응형
'DATABASE > Oracle' 카테고리의 다른 글
| [DB] Cursor (0) | 2023.01.18 |
|---|---|
| [DB] Function & Procedure & Trigger (Oracle) (0) | 2023.01.14 |
| [DB] PL/SQL 기초 (Oracle) (0) | 2023.01.13 |
| [DB] Optimizer & SQL 힌트문 (Oracle) (1) | 2023.01.05 |
댓글