CS
[DB] SQL - Join 의 종류
그레고리력
2021. 4. 2. 20:49
JOIN 이란?
- 2개 이상의 테이블을 논리적 관계를 기준으로 데이터를 검색하여 연결
Join이 왜 필요한가?
- 관계형 데이터베이스 정규화를 수행하면 저장 공간의 효율성과 확장성이 향상되지만 서로 관계있는 데이터가 여러 테이블로 나뉘어져 데이터를 효과적으로 검색하기 위해서는 조인이 필요함
Join의 종류
- INNER JOIN(내부 조인) : 공통으로 들어가 있는 값을 결과 집합으로 만듦
- NATURAL JOIN : 두개 스키마의 교집합의 attribute의 값이 같다면 합쳐줌
- OUTER JOIN(외부 조인) :INNER JOIN 문을 포함하고 한쪽에만 내용이 있더라도 지정한 기준 테이블에 있는 모든 데이터를 가져옴(null 밸류로)
- LEFT, RIGHT, FULL OUTER JOIN
- CROSS JOIN(교차 조인) : 한쪽 테이블의 모든행들과 다른쪽 테이블의 모든 행을 조인, 결과 집합은 두 테이블의 개수를 곱한 값만큼 생성(모든 경우의 수)
- 예를 들어 m행을 가진 테이블과 n행을 가진 테이블이 교차 조인되면 m*n 개의 행을 생성
- SELF JOIN(셀프 조인) : 하나의 테이블에 같은 데이터가 존재하는데 그 의미가 다르게 존재하는 경우
- 한 테이블에서 일치하는 값을 찾고자 하는 경우
- 테이블의 행을 같은 테이블 안에 있는 다른 행과 연관
JOIN의 방식
- Nested loop Join
- Hash Join
- Merge Join
(추가예정)