한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것을 의미한다.
관계형 데이터베이스의 구조적 특징으로 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고 각 테이블끼리는 관계를 가진다.
이와 같은 특징으로 관계형 데이터베이스는 저장 공간의 효율성과 확장성이 향상된다.
각 테이블에 저장된 데이터를 효과적으로 검색하기 좋다.
여러 애플리케이션에서 사용되는 가장 흔한 결합 방식이며 기본 조인 형식으로 간주된다.
내부조인은 조인 구문에 기반한 2개의 테이블의 컬럼 값을 결합함으로써 새로운 결과 테이블을 생성한다.
명시적 조인표현과 암시적 조인 표현이 있다.
명시적 조인 표현
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
암시적 조인 표현
SELECT * FROM employee, department WHERE employee.DepartmentID = department.Department
비교자 기반의 조인이며, 조인 구문에서 동등 비교만을 사용한다.
동등 조인의 한 유형으로 조인 구문이 조인된 테이블에서 동일한 컬럼명을 가진 2개의 테이블에서 모든 컬럼들을 비교함으로써 암시적으로 일어나는 구문이다.
SELECT * FROM employee NATURAL JOIN department;
조인되는 두 테이블에서 곱집합을 반환한다. 내부조인과 같이 명시적 암시적 표현을 가지고 있다.
명시적 조인 표현
SELECT * FROM employee CROSS JOIN department;
암시적 조인 표현
SELECT * FROM emplyee, department;
조인 대상 테이블에서 특정 테이블의 데이터가 모두 필요한 상황에서 외부 조인을 호라용하여 효과적으로 결과 집합을 생성할 수 있다.
우측 테이블에 조인할 컬럼의 값이 없는 경우 사용한다.
SELECT * FROm empoyee LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
좌측 테이블에 조인할 컬럼의 값이 없는 경우 사용한다.
SELECT * FROM employee RIGHT OUTER JOIN department ON employee.DepartmentID=department.DepartmentID
양쪽 테이블 모두 OUTER JOIN이 필요할 떄 사용한다.
SELECT * FROM employee FULL OUTER JOIN department ON employee,DepartmentID = department.DepartmentID;