ebson

오라클 SQL - JOIN 본문

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

  • 두 테이블에서 동일한 컬럼명을 갖는 컬럼은 모두 조인 됨
  • 두 테이블이 동시에 가지고 있는 컬럼의 값이 전부 같은 것만 골라 냄




참고 출처

https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/ 

 

https://doh-an.tistory.com/30 

 

 

Comments