발자취
#05 조인 본문
#01 조인
1. 조인이란?
1) 여러 테이블을 합해서 큰 테이블로 만드는 연산.
- 테이블이 여러 개로 나눠진 상태에서 원하는 데이터를 찾으려면 테이블을 합쳐서 필요한 데이터를 검색해야 함.
2) 조인은 테이블 단위 연산.
- 표준 조인에서는 각 테이블 간의 공통 컬럼(=외래키)이 있어야 함.
3) Nested-loop Join 방식 사용: 모든 레코드를 돌면서 찾아야 하기 때문에 for문이 중첩되어 사용되는 방식.
A(driving table, 기준) join B(driven table)의 형식
2. 표준 조인의 종류
1) Inner Join: driving table, driven table의 널값을 허용하지 않음. 조인 과정에서 널값이 나오면 빼버림!
2) Outer Join
- Left Join: 드라이빙 테이블의 레코드가 누락되면 안됨. 드라이빙 테이블 중 드리븐 테이블이 없는 드라이빙 테이블이 있어도 누락시키지 않음.
- Right Join: 드리븐 테이블의 레코드가 누락되면 안됨. 드리븐 테이블 중 드라이빙 테이블이 없는 드리븐 테이블이 있어도 누락시키지 않음.
- Full Join: 두 경우 모두 누락시키지 않음. MySQL에서는 Full Join이 지원되지 않기 때문에 Union(합집합)으로 처리해야 함.
#02 조인(join) 실습
1. join

employees – dept_emp – departments 세 테이블을 조인
2. inner join

employees와 dept_emp 테이블을 employees의 emp_no와 dept_emp의 emp_no를 기준으로 조인하고, departments 테이블을 dept_emp의 dept_no와 departments의 dept_no를 기준으로 조인합니다.
3. left join

4. right join

5. 조인한 테이블에 레코드 삽입

6. full join(mySQL에서는 full join을 지원하지 않기 때문에 left join, right join함 뒤 union(합집합)을 계산해야한다.

'3-1 > 데이터베이스' 카테고리의 다른 글
| #07 트랜잭션(일관성)과 복제 (0) | 2023.08.12 |
|---|---|
| #06 트랜잭션(격리성, 원자성), MVCC, 모델링 기초 (0) | 2023.05.07 |
| #04 DML 실습2 (집계함수, 레코드 삽입, 수정, 삭제) (0) | 2023.03.30 |
| #03 DML 실습 (환경 설정, 기본 구문) (0) | 2023.03.25 |
| #02 RDBMS 연산 (0) | 2023.03.19 |