발자취

#05 조인 본문

3-1/데이터베이스

#05 조인

해린 2023. 3. 31. 11:56

#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(합집합)을 계산해야한다.