티스토리 뷰
Web/DataBase
[DataBase] Join연산들: Theta inner join, Natural inner join, Left outer join, Left semi join, Anti join
SweetDev 2022. 10. 10. 14:21Theta inner join, Natural inner join, Left outer join, Left semi join, Anti join
cartesian 곱으로는 해결하기 어려운 연산을 간편하게 하기 위해서 만들어졌다.
1. Natural Join
select name, course_id
from student, takes
where student.ID = takes.ID;
복잡한 이걸 한방에 쓸 수 있다.
select name, course_id
from student natural join takes
그리고 natural join을 outer join과 구별하기 위해서 'inner join'이라고 부르기도 한다.
Inner join에는 3가지 종류가 있다.
- Theta join
- EQUI join
- Natural join
2. outer join
한 쪽 테이블에만 정보가 있을 때, natural join을 하면 그 정보는 누락되게 된다.
(ex)아무 course도 듣지 않은 학생의 정보도 join을 통해서 보여주고 싶다면..)
이럴 때 쓰는게 outer join이다.
outer join에는 3종류가 있다.
- left outer join : 왼쪽의 tuple만 저장
- right outer join : 오른쪽의 tuple만 저장
- full outer join : 둘 다 저장
[출처]
Database Systems Concepts 7th editoin