- join 의미
- 두 개 이상의 table들에 있는 데이터를 한 번에 조회
- implicit join vs explicit join
- implicit join: where 절에 join condition 명시. 안 쓰는 방식
- explicit join: table1 JOIN table2 + ON join condition
- join condition: 비교 연산 가능, join condition 이 true인 튜플만이 포함됨
- inner join vs outer join
- inner join: 두 테이블에서 join condition 만족하는 tuple들로 result table 만듬
- left outer join
- 좌측 테이블 기준으로 join condition에 해당하는 attribute가 true아닌 경우 우측 테이블 값들은 null로 표기
- right outer join
- left outer join의 반대
- full outer join
- 좌측 테이블 테이터가 있는 경우엔 left outer join, 우측 테이블 데이터가 있는 경우엔 right outer join
- equi join
- join condition에서 =(equality comparator)을 사용하는 join
- 두가지 시각
- inner/outer 상관 없이 = 를 사용한 join이면 equi join
- inner 에서 =를 사용한 경우에만 equi join
- using 키워드를 사용한 조인
- 두 테이블이 equi join할 때 join 하는 attribute(s) 이름이 같을떄 using 으로 간략히 표현
- 두 개 이상일 때는 using (attr1, attr2) 로 괄호에 표기
- natural join
- 두 테이블간 같은 attribute 이름이면 해당 attribute에 대해 equi join을 수행
- cross join
- 두 테이블의 tuple pair 로 만들 수 있는 모든 조합(cartesian product)을 result table로 반환
- 문법
- implicit: table1, table2
- explicit: table1 cross join table2
- mysql에 대한 지식
- cross join 와 on(or using) 같이 쓰면 inner join
- inner join에 on(or using)이 없으면 cross join
- self join
- 같은 테이블 대상으로 조인
- table1 join table2
- 같은 테이블 대상으로 조인
'컴퓨터공학 > 데이터베이스(database)' 카테고리의 다른 글
database three valued logic (0) | 2024.05.14 |
---|---|
database grouping, aggregate function, ordering (0) | 2024.05.14 |
[Query Processing]Join Operation (0) | 2020.06.07 |
[Query Processing]Sorting (0) | 2020.06.07 |
[Query Processing]Selection Operation (0) | 2020.06.06 |