Join 정리
Join 사용하는 이유
: 여러개의 테이블로부터 자료를 검색하기 위하여 조인을 사용합니다.
- WHERE 절에 조인 조건 기술
- SELECT 문장을 작성할 경우 명확성을 위하여 또는 데이터베이스의 Performance 향상을 위하여
컬럼열 이름 앞에 테이블 명을 붙인다.
[Inner Join - 단순 조인, 내부 조인]
: 조인 조건에서 “=”을 사용하여 값들이 정확하게 일치하는 경우에 사용하는 조인
다른 말로 단순 조인 또는 내부 조인 이라고도 합니다.
SELECT table1.column1 [,table2.column2, . . . . .] //테이블명.(해당테이블에서 조회할)컬럼명
FROM table1, table2 //테이블명
WHERE table1.column1 = table2.column2; //조건
[Outter Join]
: 조인하려는 테이블 사이에 아무런 조건이 일치하지 않을 경우에 사용
- 조인되지 않는 두 테이블의 모든 행들을 출력할 경우에 사용
- Null값이 있는곳에 (+), null값이 없는 곳에 left/right outter join 사용
※left/right outter join
- (+) : left/right outer join 기호
- 일치하는 행이 없는 테이블의 열 이름 뒤에 outer join연산자를 사용
(즉, where절에서 = 기준으로 양쪽 사이드 모두 올수 없으며 한쪽에만 위치함)
▶ 결과의 기준이 오른쪽 테이블이라면 (오른쪽 테이블 모두 출력시) right 사용
결과의 기준이 왼쪽 테이블이라면 (왼쪽 테이블 모두 출력시) left 사용
→ Outer Join제약 사항
Outer Join연산자는 정보가 부재하는 쪽의 표현식 한 쪽에만 둔다. 다른 테이블의 어떠한 열과도 직접적으로 일치하는 것이 없는 테이블의 행을 리턴합니다.
Outer Join을 포함하는 조건은 IN연산자를 사용할 수 없고, OR연산자에 의해 다른 조건과 연결될 수 없다.
SELECT table1.column1 [,table2.column2, . . . . .] //해당 컬럼을 검색하기 위해 조인함
FROM table1, table2
WHERE table1.column1 = table2.column2(+); //(+)는 outer join기호입니다.
//where절의 한쪽에만 위치
SELECT table1.column1 [,table2.column2, . . . . .]
FROM table1, table2
WHERE table1.column1(+) = table2.column2;