오늘이라도
[Oracle] 8. JOIN, CARTESIAN PRODUCT, EQUI JOIN, NON-EQUI JOIN, OUTER JOIN 본문
[Oracle] 8. JOIN, CARTESIAN PRODUCT, EQUI JOIN, NON-EQUI JOIN, OUTER JOIN
upcake_ 2020. 5. 6. 17:13
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
gif 파일은 클릭해서 보는 것이 정확합니다.
※ 클릭 한 번으로 테이블이나 파일이 열리는 게 불편하다면 해당 설정을 통해 바꿀 수 있다.
- 결합 구문 : JOIN -
① 카티션 곱(Cartesian Product; 데카르트 곱; 곱집합)
- 카티션 곱이란 각 집합의 원소들이 서로 곱해져서 만들어진 곱집합을 의미한다.
- 예제에서는 employees의 원소 107개와 departments의 원소 27개가 서로 곱해져 출력되어 2889개의 행이 출력되었다.
- 이런 식으로 카티션 곱이 결과로 출력되는 것을 막기 위해 조인 구문이 필요하다.
② 등가 조인(EQUI JOIN)
- 등가 조인이란 WHERE절에 동등 연산자(=)를 사용하는 조인 형식이다.
- 테이블 간에 공통으로 만족되는 값을 가진 경우의 결과만 반환한다.
- FROM 절에 테이블 목록을 나열한 뒤, 각 테이블 명에 별칭(Alias)을 지정한다.
- WHERE 절에 테이블명(별칭).칼럼명 = 테이블명(별칭).칼럼명 형식으로 등가 조인 구문을 작성한다.
- 개체-관계 다이어그램(ERD; Entity Relationship Diagram)은 각 테이블의 관계를 나타내 주는 다이어그램이다.
- 쿼리문에 사용한 테이블의 개수를 n이라 할 때, n-1만큼의 조인 조건문이 필요하다.,
- 복수의 조건문은 WHERE ~ AND ~ AND.... 의 형식으로 작성한다.
③ 비등가 조인(NON-EQUI JOIN)
- 동등 연산자(=) 이외의 연산자를 사용하여 JOIN 구문을 작성하는 것을 비등가 조인이라 한다.
- 비등가 조인에 사용되는 연산자로는 비교 연산자(<=, >=, <, >), 범위 연산자(BETWEEN), IN 연산자 등이 있다.
- 거의 사용하지 않는다고 한다.
④외부 조인(OUTER JOIN)
- 외부 조인(OUTER JOIN)이란, NULL 값이 생략되는 정보도 포함해서 표시하기 위해 사용하는 조인 형식이다.
- 어느 테이블 칼럼이 조인할 다른 테이블 칼럼에 비해 데이터가 부족하여 NULL 값으로 처리되어 생략될 경우에, OUTER 기호 (+)를 붙이는 형식으로 사용한다.
- 예제에서는 departments 테이블의 department_id 칼럼에 NULL 값이 없어서 178번 사원이 생략되어 출력되므로, d.department_id (+) 형식으로 외부 조인을 사용하였다.