데이터 베이스에서는 여러가지의 join이 존재한다. 연산자에 따라 join 방식을 분류하면, equi join/non equi join으로 나뉘게 되고, from절의 join 형태에 따라 분류하면 inner join, outer join으로 나뉘게 된다.
오늘은 연산자에 대한 join 방식을 알아보겠다.
먼저, Equi join이란 두 테이블에서 공통적으로 존재하는 컬럼의 값의 행을, 즉 특정 Attribute의 tuple 값이 일치하는 경우 해당 행을 연결하여 데이터를 조회하는 방법이다.
아래 사진을 살펴보자.
위 쿼리를 보면 먼저 student 테이블과 apply 테이블의 공통되는 column에서 같은 값을 가지는 데이터에 한해서 조회를 하고 있다.
물론 같은 컬럼으로 table을 조인시키고 나면, 아래 사진과 같이 특정 컬럼의 데이터에 대한 조건도 추가해줄 수 있다.
같은 column을 가지고 있고, 공통되는 값이 있다면, 3개 이상의 테이블에 대해서도 데이터를 조회할 수 있다.
그럼 non Equi join은 무엇일까?
non Equi join이란 동일 컬럼 없이 다른 조건(범위)을 사용하여 테이블을 조인, 데이터를 조회하는 방법이다.
즉, 조인을 하는 각 테이블의 칼럼이 직접적으로 일치 하는 않는 경우에 사용하는 join 방식이다.
조인 조건으로는 동등(=)이외의 연산자, 크거나 작음 또는 다름(<>)을 갖는다.
아래 사진을 보자.
student 테이블과 college 테이블은 서로 공통되는 컬럼이 존재하지 않으므로, equi join 방식을 사용할 수 없다.
따라서 GPA가 3.5 이하라는 조건을 통해 non equi join 방식으로 데이터를 조회하고 있다.
아래 사진도 마찬가지다.
student table의 sname이라는 컬럼의 값이 'Craig'가 아니라는 조건을 통해 non equi join 방식으로 데이터를 조회하고 있다.
'DataBase' 카테고리의 다른 글
SQL - Set Operator(집합 연산자) (0) | 2019.09.22 |
---|---|
SQL - natural join, cross join, self join (0) | 2019.09.21 |
SQL - Alias/Order by/Like 키워드를 이용한 SELECT 문 (0) | 2019.09.16 |
SQL - 테이블 JOIN을 이용한 SELECT문 (0) | 2019.09.16 |
SQL - SELECT문 (0) | 2019.09.16 |