18강. 기능적 관점으로 구분하는 결합의 종류
- 등가 결합: 결합 조건으로 등호(=)를 사용하는 경우
- 비등가 결합: 결합 조건으로 부등호(>=, < 등)를 사용하는 경우
- 자연 결합: 내부 결합이면서 등가 결합
<자연 결합 예시>
SELECT *
FROM Employees NATURAL JOIN Departments;
내부 결합+ 등가 결합 쿼리와 같은 결과 도출
SELECT * FROM Employees E INNER JOIN Departments D
ON E.dept_id=D.dept_id;
USING 구를 사용한 경우
SELECT * FROM Employees INNER JOIN Departments
USING(dept_id);
1. 크로스 결합
- 2개의 테이블의 레코드에서 가능한 모든 조합을 구하는 연산
<(사원 테이블 레코드) * (부서 테이블 레코드) 만큼의 레코드 결과 생성>
(사원 테이블과 부서 테이블 존재)
SELECT * FROM Employees
CROSS JOIN Departments;
2. 내부 결합
SELECT E.emp_id, E.emp_name, E.dept_id, D.dept_name
FROM Employees E INNER JOIN Departments D
ON E.dept_id=D.dept_id;
SELECT E.emp_id, E.emp_name, E.dept_id,
(SELECT D.dept_name FROM Departments D
WHERE E.dept_id=D.dept_id) AS dept_name
FROM Employees E;
- dept_id: 부서 테이블의 기본 키이므로 레코드가 반드시 하나
- 기본 키를 사용하면 상관 서브쿼리를 스칼라 서브쿼리로 사용 가능
- 상관 서브쿼리보다는 결합을 사용하는 것이 실행 비용이 적음
3. 외부 결합
- 종류
- 왼쪽 외부 결합: 마스터가 되는 테이블을 왼쪽에 적은 것
- 오른쪽 외부 결합: 마스터가 되는 테이블을 오른쪽에 적은 것
- 완전 외부 결합