카티션 곱(CROSS JOIN) : 두 개 이상의 테이블에 대해 연결 가능한 행을 모두 결합. 예를들어 4개의 행을 가진 테이블과 5개의 행을 가진 테이블 끼리 카티션곱을 하면 4*5개의 행을 가진 테이블을 결과로 얻는다.
EQUI JOIN : 공통 칼럼을 '='(equal)비교를 통해 같은 값을 가지는 행을 연결하여 결과를 생성하는 조인 방법. where절에서 조인을 할 기준이 되는 칼럼들을 명시적으로 비교하여 조인한다.
SELECT table.column, table2.column
FROM table, table2
WHERE table1.column1 = table2.column2;
NATURAL JOIN : where절을 사용하지 않고 오라클에서 자동적으로 공통 칼럼을 조사 후, 내부적으로 조인문 생성. 기존 equi join과 달리 조인할 칼럼을 명시하지 않아도 된다. 테이블 별명 사용 불가.
JOIN ~ USING : USING절에 조인 대상 칼럼을 지정. 칼럼이름은 조인 대상 테이블에서 동일한 이름으로 정의되어 있어야한다.
SELECT table.column, table2.column
FROM table1
JOIN table2
USING(column);
OUTER JOIN : 이전의 조인문은 행에 null값이 포함되어있을 경우 결과 테이블에 출력이 불가하였다. outer join은 양측 칼럼 값 중의 하나가 null이지만 조인 결과로 출력할 필요가 있는 경우 사용한다.
- LEFT OUTER JOIN : from절의 왼쪽에 위치한 테이블이 null을 가질 경우에 사용
- RIGHT OUTER JOIN : from절의 오른쪽에 위치한 테이블이 null을 가질 경우에 사용
- FULL OUTER JOIN : LEFT OUTER JOIN과 RIGHT OUTER JOIN을 동시에 실행한 결과를 출력
'Database' 카테고리의 다른 글
[MySql] Cannot create PoolableConnectionFactory (Unable to load authentication plugin 'caching_sha2_password'.)- 오류 (0) | 2022.09.28 |
---|---|
[ORACLE] 시퀀스 생성 (0) | 2021.11.29 |
[ORACLE] 테이블 생성 시 두 개 이상의 칼럼에 PRIMARY KEY 부여하기 (0) | 2021.11.29 |
DB에서 특정 문자열을 가진 행을 삭제하는 쿼리문 (0) | 2021.11.22 |
Select문의 where에서 Order by (0) | 2021.11.17 |
댓글