DATABASE STUDY
오라클 SQL - JOIN
ebson
2022. 8. 28. 13:40
1. 요약
- 두 테이블을 서로 묶어서 하나의 결과를 만듦
- INNER JOIN은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 함. 공유 컬럼을 기준으로 교집합임
- OUTER JOIN은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나옴. 공유 컬럼을 기준으로 부분집합, 합집합임
- CROSS JOIN은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능임
- SELF JOIN은 자신이 자신과 조인한다는 의미로 1개의 테이블을 사용함
- 두개 이상의 테이블을 서로 연결해 데이터를 검색할 때 사용함
- 두개의 테이블을 하나의 테이블로 조회함
- 연결하려면 테이블이 적어도 하나의 컬럼을 공유하고 있어야 함. 공유하는 칼럼은 PK 또는 FK 임
2. INNER JOIN
- 두 테이블을 연결 할 때 가장 많이 사용하는 것이 내부 조인임
- 그냥 조인이라고 부르면 내부 조인을 의미함
- 두 테이블에 모두 데이터가 있어야만 조회됨
SELECT 열목록
FROM 테이블1 INNER JOIN 테이블2
ON 조인조건
WHERE 검색조건
3. OUTER JOIN
- 한쪽에만 데이터가 있어도 결과가 나옴
- 모든 값이 출력되는 테이블을 기준으로 LEFT, RIGHT, FULL 로 구분함
SELECT 열목록
FROM 테이블1 LEFT|RIGHT|FULL OUTER JOIN 테이블2
ON 조인조건
WHERE 검색조건
- FULL OUTER JOIN은 MYSQL에서는 지원 안함으로 LEFT, RIGHT 조인 후 UNION 함
4. CROSS JOIN
- 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시킴
- 두 테이블의 각 행의 개수를 곱한 만큼의 결과가 조회됨
- 카티션 곱이라고도 함
SELECT *
FROM 테이블1 CROSS JOIN 테이블2
5. SELF JOIN
- 자기 자신과 조인하므로 1개의 테이블을 사용함
SELECT 열목록
FROM 테이블1 별칭1 INNER JOIN 테이블1 별칭2
ON 조인조건
WHERE 검색조건
6. NATURAL JOIN
- 두 테이블에서 동일한 컬럼명을 갖는 컬럼은 모두 조인 됨
- 두 테이블이 동시에 가지고 있는 컬럼의 값이 전부 같은 것만 골라 냄
참고 출처