▣ JOIN(결합구문)이란 무엇일까?
▷ 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것 입니다.
따라서 조인은 테이블로 저장되거나, 그 자체로 이용할 수 있는 결과 세트를 만들어 냅니다.
▷ JOIN은 2개의 테이블 내에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 됩니다.
▣ INNER JOIN의 종류엔 무엇이 있을까?
1) INNER JOIN : 내부 조인은 둘 이상의 테이블에 존재하는 공통 속성의 값이 같은 것을 결과로 추출합니다.
Ⅰ) 동등 조인(EQUI JOIN) : 둘 이상의 테이블에 존재하는 공통 속성의 동등 비교만을 사용하며, 부등호 조인은 동등조인에 포함하지 않는다.
※ 조인 문법은 명시적 표현법과 묵시적 표현법이 있습니다.
A )명시적 표현법은 명시적으로 어떤 조인을 사용할 것인지, ON키워드로 어떤 구문을 조인할 것인지 지정해줍니다.
B )묵시적 표현법은 SELECT 절의 FROM 구문에서 단순히 ,(콤마)를 사용하여 조인을 할 여러 테이블들을 나열하면 됩니다.
※ 명시적 표현과, 묵시적 표현의 값이 같은 것을 알 수 있습니다.
Ⅱ) 자연 조인(NATURAL JOIN) : 동등 조인과 거의 유사합니다. 단, 조인 대상 테이블의 모든 컬럼들을 비교하여, 같은 컬럼명을 가진 대상으로 조인을 수행 합니다. 그리고, 중복된 컬럼은 한번만 출력되게 합니다.
EX)
(동등조인의 결과)
(자연조인의 결과)
※ 동등조인에서 두번 표현되던 DEPTNO가 자연조인에선 하나로 합쳐져 표현된 것을 볼 수 있습니다.
Ⅲ) 교차 조인(CROSS JOIN) : 카티션 프로덕트(Cartesian Product)로 알려져 있고, 조인에 참여한 테이블들의 모든 데이터가 합쳐져서 출력됩니다.
교차조인이 발생하는 상황에는
1. JOIN조건이 잘못 기술되었을 때
2. JOIN조건을 정의하지 않았을 때
3. 조인 조건이 조인 조건에 참여하는 테이블의 모든 행에 조인될 때
가 있습니다.
A )명시적 표현법 : SELECT * FROM 테이블명 CROSS JOIN 조인할 테이블명
B )묵시적 표현법 : SELECT * FROM 테이블명, 조인할 테이블명
교차조인을 예방하려면, 조인에 참여하는 테이블 수가 N개 일 경우, 최소한 N-1개의 조인 조건이 질의문 안에 있어야 합니다.
EX)
Ⅳ) 셀프 조인(SELF JOIN) : 자가 조인이라고도 하며, 하나의 테이블의 데이터를 활용해 조인하는 기법입니다. 테이블 하나에 서로 다른 이름을 지정해 주어야 합니다.
EX)
'Programming > DataBase' 카테고리의 다른 글
(SQL) SQL Developer를 설치해보자! (1) | 2018.04.22 |
---|---|
[SQL]OUTER JOIN(외부조인)에 대해 알아보자! (1) | 2018.04.20 |
(SQL)스키마(SCHEMA)에 대해 알아보자!! (0) | 2018.04.20 |
(SQL) TCL(Transaction Control Language) 이란 무엇일까? (0) | 2018.04.19 |
(SQL)트랜잭션(Transaction)에 대해 알아보자! (0) | 2018.04.19 |