개발노트

Join 정리 본문

Programming/Database

Join 정리

dev? 2020. 4. 27. 18:54
반응형

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;

 

반응형

'Programming > Database' 카테고리의 다른 글

JDBC 드라이버 로딩 및 Connection 생성  (0) 2022.02.08
SQL 함수  (0) 2020.04.27
UNION / INTERSECT / MINUS  (0) 2020.04.27
NVL 함수  (0) 2020.04.27
DDL / DML / DCL - 쿼리의 종류  (0) 2020.04.27