조인이란?
- 두개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 조인이라고 하며 일반적으로 사용 되는 SQL문의 상당수가 조인으로 이루어져 있다.
- 일반적인 경우 PRIMARY KEY와 FOREIGN KEY의 값 연관에 의해 조인이 이루어지며 PK, FK 관계와는 별도로 일반 컬럼 끼리 조인이 이루어지는 경우도 있다.
최소로 필요한 조인 조건의 개수 = 조인되는 테이블의 수 -1
JOIN의 형태
- INNER JOIN: INNER JOIN은 OUTER(외부) JOIN과 대비하여 내부 JOIN이라고 하며 JOIN 조건에서 동일한 값이 있는 행만 반환
- NATURAL JOIN: NATURAL JOIN은 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI(=) JOIN을 수행(FK)
- USING 조건절: NATURAL JOIN에서는 모든 일치되는 컬럼들에 대해 JOIN이 이루어지지만, FROM 절의 USING 조건절을 이용하면 같은 이름을 가진 컬럼들 중에서 원하는 컬럼에 대해서만 선택적으로 EQU JOIN을 할 수가 있음
- ON 조건절: JOIN 서술부(ON 조건절)와 비 JOIN 서술부(WHERE 조건 절)를 분리하여 이해가 쉬우며, 컬럼 명이 다르더라도 JOIN 조건을 사용할 수 있는 장점이 있음
- CROSS JOIN: CROSS JOIN은 E.F.CODD 박사가 언급한 일반 집합 연산자의 PRODUCT의 개념으로 테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말함
- OUTER JOIN: INNER(내부) JOIN과 대비하여 OUTER(외부) JOIN이라고 불리며 JOIN조건에서 동일한 값이 없는 행도 반환 될 때 사용할 수 있음 (ex.고객,주문 테이블이 있을 때 고객이 중심이 되어 결과를 반환, 이순신홍길동 두명의 고객이 있고 이순신만 주문이 2건 있을 경우, 이너조인은 이순신만 보여줌, 아우터 조인은 일단 고객을 다보여줌)
OUTER JOIN은 조인하는 여러테이블에서 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것입니다. 즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있습니다.
제약조건을 드랍하는 이유는 제약조건 때문에 없는 부서를 넣을 수가 없기 때문
왼쪽에 있는 건 다나오고 오른쪽에 있는건 해당되면 나오고 없으면 NULL로 채워
오른쪽에 있는 건 다나오고 왼쪽에 있는건 해당되면 나오고 없으면 NULL로 채워
양쪽에 있는거 다 나와, 테이블 합쳐 (LEFT OUTER+ RIGHT OUTER + INNER JOIN), 위 예시에선 INNERJOIN 제거.
'Computer Science > 데이터베이스' 카테고리의 다른 글
SQL 계층 형 질의와 SELF조인 - Oracle (0) | 2023.06.10 |
---|---|
SQL 집합연산자(SET OPERATOR) - Oracle (0) | 2023.06.10 |
SQL ORDER BY절 - Oracle (0) | 2023.06.09 |
SQL GROUP BY, HAVING절 - Oracle (0) | 2023.06.09 |
SQL 함수(Function) - Oracle (0) | 2023.06.09 |