08 - 1 조인

집합 연산자와 조인의 차이점

  • 조인은 두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력할 때 사용하는 방식이다.
  • 차이점은 집합 연산자를 사용한 결과는 두 개 이상 SELECT문의 결과 값을 세로로 연결한 것이고, 조인을 사용한 결과는 두 개 이상의 테이블 데이터를 가로로 연결한 것이라고 볼 수 있다.

여러 테이블을 사용할 때의 FROM절

  • 지금까지 사용한 SELECT문은 다음과 같이 FROM절에 EMP 테이블을 하나만 명시했다. 하지만 FROM절에는 여러 개 테이블을 지정하는 것이 가능하다. 조금 더 정확하게는 꼭 테이블이 아니더라도 테이블 형태, 즉 열과 행으로 구성된 데이터 집합이면 모두 FROM절에 지정 가능하다.
SELECT1,2, ..., 열N
FROM EMP
WHERE 조건식
GROUP BY 그룹식
HAVING 그룹조건식
ORDER BY 정렬식
  • SELECT절의 여러 열을 구분할 때와 마찬가지로 FROM절에 여러 테이블을 명시할 때 쉼표를 구분자로 사용하여 지정한다. 그리고 WHERE, GROUP BY, ORDER BY절 등 다른 절도 그대로 사용할 수 있다.
SELECT
FROM 테이블1, 테이블2, ..., 테이블N

조인 조건이 없을 때의 문제점

  • 조인을 통한 출력은 결과로 나올 수 있는 모든 행을 조합하기 때문에 정확히 맞아떨어지지 않는 데이터도 함께 출력된다. 명시한 테이블의 데이터를 가로로 연결하기 위해 조인을 사용하지만, 어떤 데이터를 가로로 정확히 연결해야 하는지의 기준은 데이터베이스가 아닌 SQL문을 작성하는 프로그래머가 정해 주어야한다. 이때 출력 행을 선정하는 조건식을 명시하는 WHERE절이 중요한 역을을 한다. 따라서 서로 다른 테이블에서 같은 이름의 열을 구별하는 방법은 열 앞에 테이블 이름을 명시하여 특정 열이 어느 테이블에 속한 열인지를 구별하는 방식이다.
⭐ 테이블 이름.열 이름

테이블의 별칭 설정

  • FROM절에 지정한 테이블에는 SELECT절의 열에 사용한 것처럼 별칭을 지정할 수 있다. 테이블에 병칠을 지정할 때는 명시한 테이블 이름에서 한 칸 띄운 후에 지정한다.
FROM 테이블 이름1 별칭1, 테이블 이름2 별칭 2 ...

08 - 2 조인 종류

  • 두 개 이상의 테이블을 하나의 테이블처럼 가로로 늘어뜨려 출력하기 위해 사용하는 조인은 대상 데이터를 어떻게 연결하느냐에 따라 등가 조인, 비등가 조인, 자체 조인, 외부 조인 등으로 구분한다.

등가 조인

  • 등가 조인(equi join)은 테이블을 연결한 후에 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식이다. 등가 조인은 내부 조인(inner join) 또는 단순 조인(simple join)으로 부르기도 한다.
등가 조인은 일반적으로 가장 많이 사용되는 조인 방식이다. 따라서 외부 조인(outer join)과 같이 이름을 특별히 명시하지 않으면 ‘조인을 사용한다’는 것은 대부분 등가 조인, 즉 특정 열 값이 일치한 출력 결과를 사용하는 방식이라고 보면 된다.

비등가 조인

  • 비등가 조인(non-equi join)은 등가 조인 방식 외의 방식을 의미한다. 비등가 조인 방식은 등가 조인 방식에 비해 그리 자주 사용하는 방식은 아니다. 하지만 조인 조건이 특정 열의 일치 여부를 검사하는 방식 외에 다른 방식도 사용할 수 있음을 기억해라.

자체 조인

  • 자체 조인(self join)은 하나의 테이블을 여러 개의 테이블처럼 활용하여 조인하는 방시긍로 앞에서 물리적으로 동일한 테이블 여러 개를 사용할 때 발생할 수 있는 문제점을 해결한다. 자체 조인은 FROM절에 같은 테이블을 여러 번 명시하되 테이블의 별칭만 다르게 지정하는 방식으로 사용한다.

외부 조인

  • 두 테이블간 조인 수행에서 조인 기준 열의 어느 한쪽이 NULL이어도 강제로 출력하는 방식을 외부 조인(outer join)이라고 한다.
외부 조인은 좌우를 따로 나누어 지정하는데 WHERE절에 조인 기준 열 중 한쪽에(+) 기호를 붙여 준다.
왼쪽 외부 조인(Left Outer Join)WHERE TABLE1.COL1 = TABLE2.COL1(+)
오른쪽 외부 조인(Right Outer Join)WHERE TABLE1.CON1(+) = TABLE2.COL1
  • 외부 조인은 조인 기준 열의 NULL을 처리하는 것을 목적으로 자주 사용하는 조인 방식이다. 하지만 (+) 기호를 붙이는 외부 조인 방식으로는 양쪽 모든 열이 외부 조인되는 ‘전체 외부 조인(full outer join)’ 사용은 불가능하다.
profile
블로그 이사 중 ⭐️ || https://bebeco.tistory.com/

0개의 댓글