Join
은 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법으로 두 개의 테이블을 하나의 테이블인 것처럼 보여주는 기능이다.
- 두 개의 테이블에 하나라도 같은 컬럼이 있어야 한다.
- 두 컬럼의 값은 공유되어야 한다.
- 보통
join
을 위해 기본키(Primary Key
)와 외래키(Foreign Key
)를 활용한다.join
기능 사용시에는 모든 컬럼명 앞에 어느 테이블의 컬럼인지 명시해야 하므로 편의상 거의 필수적으로 별칭(Alias/AS
)을 지정해야 한다.SELECT - FROM ~ JOIN - ON
순서로 사용한다.
- 예시
SELECT * FROM TABLE_A T1 //SELECT - 가져올 열 JOIN TABLE_B T2 //FROM A JOIN B - 조인의 종류, 조인할 2개 이상의 테이블 ON T1.COMMONCOLUMN = T2.COMMONCOLUMN // ON - 조인 조건
- 예시
SELECT * FROM EMPLOYEES e INNER JOIN JOB_HISTORY jh ON e.EMPLOYEE_ID = jh.EMPLOYEE_ID //EMPLOYEES 테이블과 JOB_HISTORY 테이블에서 EMPLOYEE_ID 컬럼 값이 같은 데이터들을 JOIN해서 가져온다.
조인 조건에 일치하는 데이터 및 일치하지 않는 데이터를 모두 select
한다.
조인 조건이 일치하는 데이터가 없다면 null
로 가져온다.
Outer Join
은Inner Join
과는 다르게 주(main
)테이블이 어떤 테이블인지가 중요하다.그래서 어떤 테이블이 중심이 되느냐에 따라 다시
Left Outer Join, Right Outer Join, Full Outer Join으로 세분화할 수 있다.
Left Outer Join
은 왼쪽에 있는 테이블이,Right Outer Join
은 오른쪽에 있는 테이블이,Full Outer Join
은 양쪽 테이블 모두가 중심(주)이라는 뜻이다. (다만Full Outer Join
은 세분화된 데이터로서의 의미가 적어 실제로는 많이 사용되지 않는다.)
Left Outer Join
- 왼쪽 테이블이 기준이 된다.
- 조인 조건에 부합하는 데이터가 데이터가 조인당하는 테이블(오른쪽)에 있으면 해당 데이터, 부재하면
NULL
로 SELECT된다.- 사용 방법
SELECT * FROM TABLE_A T1 LEFT OUTER JOIN TABLE_B T2
- 예시
Right Outer Join
- 오른쪽 테이블이 기준이 된다.
- 조인 조건에 부합하는 데이터가 데이터가 조인당하는 테이블(왼쪽)에 있으면 해당 데이터, 부재하면
NULL
로 SELECT된다.- 사용 방법
SELECT * FROM TABLE_A T1 RIGHT OUTER JOIN TABLE_B T2
- 예시
Full Outer Join
- 오른쪽 테이블이 기준이 된다.
- 조인 조건에 부합하는 데이터가 데이터가 조인당하는 테이블(왼쪽 또는 오른쪽)에 있으면 해당 데이터, 부재하면
NULL
로 SELECT된다.- 사용 방법
SELECT * FROM TABLE_A T1 FULL OUTER JOIN TABLE_B T2
- 예시
- SQL은 데이터베이스를 관리하기 위해 만들어진 프로그래밍 언어이며, 데이터베이스를 관리해주는 대부분의 DBMS들은 SQL을 사용한다.
- 물론 DBMS 자체의 특수성 때문에 SQL의 사용법이 조금씩 다르기도 하지만 큰 틀에서 보면 나름대로의 보편성을 가지고 있다.
- ANSI 미국 국립 표준 협회에서도 SQL에 대한 보편적인 문법을 제시하고 있는데, 그것이 바로
ANSI Query
이다. Join도 마찬가지로 ANSI 문법을 사용하는 경우가 대부분이다.