위에는 EMP 테이블, SALGRADE 테이블, DEPT 테이블이 있다.
상호 조인 ( Cross Join) 이란?
테이블들을 연결하여 연속적으로 기술하는 것이다.
컬럼 수는 EMP 컬럼수 + DEPT 컬럼수 + SALGRADE 컬럼수를 더한 것이되고,
행 수는 EMP 행 * DEPT 행 * SALGRADE 행이 된다.
조인될 때 아무런 조건을 제시하지 못했기 때문에 이 CROSS 조인은 아무런 의미가 없다.
따라서 조건을 사용하는 다양한 JOIN에 대해 더 알아보자.
Equi(Inner) Join 이란?
동일 칼럼을 기준으로 조인. N개의 테이블 조인시 N-1개의 조인 조건이 필요하다.
공통적으로 존재하는 컬럼의 값이 일치되는 행을 연결하여 결과를 생성하는 조인 방법이다.
EQUI JOIN은 가장 많이 사용하는 조인 방법이니 잘 학습해두자.
INNER JOIN을 사용하여 조건절을 WHERE 대신 ON절을 사용해서 나타낼 수 있다.
가운데 그림처럼 USING ( 공통 COLUMN )을 사용해서도 나타낼 수 있다.
*using절에서는 table이름이나 alias를 명시하면 에러난다.
오른쪽 그림처럼 INNER JOIN을 콤마( , )로 변경하고 WHERE로 바꿔서도 나타내도 똑같은 결과를 나타낸다.
join 조건 -> On
일반 조건 -> Where
Non - Equi Join 이란?
동일 칼럼 없이 다른 조건을 사용해 조인.
일반적인 조인 조건인 등호(=)가 아닌 다른 비교 연산자(>, <, >=, <=, <>)를 사용하여 두 테이블을 조인하는 방법.
위와 같이 == 기호가 아닌, BETWEEN A AND B 연산자를 이용하여 범위를 나타낸 것이다.
이것이 바로 Non - EquiJoin 이라고 부른다.
Self Join 이란?
한 테이블 내에서 조인. 즉, 자기 자신과 조인을 맺는 것.
Outer Join 이란?
조인 조건에 만족하지 않는 행도 나타냄.
두 테이블 사이에서 일치하는 값 뿐만 아니라
한쪽 테이블에는 있는데 다른 쪽 테이블에는 없는 값을 포함하여 결과를 반환하는 방법이다.
LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블과 일치하는 값이 있으면 포함
RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블과 일치하는 값이 있으면 포함
FULL OUTER JOIN: 양쪽 테이블의 모든 행을 포함하고, 일치하는 값이 있으면 포함
1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE TABLE DEPT01( DEPTNO INT(20), DNAME VARCHAR(20) ); INSERT INTO DEPT01 VALUES(10, 'QBCDF'); INSERT INTO DEPT01 VALUES(30, 'BQWRZX'); CREATE TABLE DEPT02( DEPTNO INT(20), DNAME VARCHAR(20) ); INSERT INTO DEPT02 VALUES(10, 'ABCDF'); INSERT INTO DEPT02 VALUES(20, 'AQWRZX'); | cs |
LEFT OUTER JOIN 과 RIGHT OUTER JOIN
Left Outer Join은 왼쪽 테이블이 모두 나오고, Right Outer Join은 오른쪽 테이블이 모두 나오는 것이다.
FULL OUTER JOIN ( UNION )
Full Outer Join은 left조인과 right조인을 함께 쓰는 것으로, UNION을 이용해서 나타내줄 수 있다.
Natural Join 이란?
조인 하려는 컬럼명이 같아야한다. 또한, 중복 된 칼럼에 명칭을 따로 주지 않아도 된다.
조인 하려는 컬럼이 다를 경우 사용할 수 없다.
'✨ DBMS > MySQL' 카테고리의 다른 글
[SQL] 뷰(VIEW) 활용하기 2 - 수정 (OR REPLACE, ALTER) (0) | 2023.08.02 |
---|---|
[MySQL / SQL] - 주요 함수 ( 숫자, 문자 , 시간, 날짜) (0) | 2023.07.27 |
[SQL] 뷰(VIEW) 활용하기 , WITH CHECK OPTION 사용법 (0) | 2023.07.27 |
[MySQL / SQL] 테이블 구조 생성, 변경, 삭제 (DDL) (0) | 2023.07.26 |
댓글