<JOIN>

 

 

- 여러 테이블에 흩어져 있는 데이터들을 조합해서 가져오는 기술이다.

 

- ORACLE JOIN 문법과 ANSI JOIN문법이 있다.

프로그램마다 문법이 다르면 매번 배워야하는 번거로움이 있기 때문에 표준으로 정한 문법이

ANSI JOIN 문법이다.

 

 

- 데이터베이스는 OBJECT를 저장할 수 없다.

그렇기 때문에 FK로 접근해야한다.

 

 

- 제약조건 : OBJECT를 사용할 수 없기 때문에 번호를 사용해서 값을 찾는다.

EX) EMP 테이블의 FK값으로 DEPT 테이블의 PK를 참조해서 찾는다.

 

 

- DEPT D : 선행테이블 

(DRIVE 테이블)

 

- EMP E : 후행테이블 

 

* 오른쪽 테이블에 프라이머리키(PK)가 있으면 좋다 -> 연산이 줄어들기 때문에

 

 

 

- ANSI JOIN

 

 

*WHERE 절 대신 ON 을 사용한다.

(밑에 WHERE을 사용해도 무방)

 

 

 


 

 

<INNER JOIN - 동일 JOIN>

 

 

- 가장 많이 사용되는 조인으로 선행 테이블에서 데이터를 가져온 후 조인 조건절을 검사해서 동일한 조건을 가진 데이터를 후행 테이블에서 꺼내오는 것 

 

 

 

 

 


 

 

<OUTER JOIN - 외부조인>

 

 

 

 

- (+)붙은쪽의 NULL값이 다 나옴 

 

- 오른쪽 데이터를 전부 출력 

 

 

- 왼쪽 데이터를 전부 출력

 

 

* INNER JOIN만 하면 못 보는 데이터값이 생기기 때문에 OUTTER JOIN 해줘야 한다.

 

 

- INNER JOIN 예시

 

- 3번 유저가 나오지 않는다 

 

- 3번 유저까지 나오기 위해서는 OUTER JOIN 을 사용해야한다.

 

 

 

* 댓글 안 단사람 찾는 법 

 

 

+ 집합연산자로도 찾을 수 있다

* MINUS : 두 집합의 차집합 결과를 출력 및 정렬 (교집합)

 

 

 

*2개 이상의 테이블 JOIN

 

 

 

 

 

- ANSI JOIN 의 (LEFT / RIGHT OUTER JOIN) 

 

 

 

 

 


 

 

 

* 테이블 만들기 

 

- 왼쪽에서 테이블 추가해서 만들 수 있고, 아래처럼 작성해서 만들 수도 있다.

 

 

 

 

 


 

 

 

<DML>

 

 

- 시퀀스 삽입 

 

 

 

 

- 새로만든 테이블에 값을 넣어준다.

 

- 값 삽입 후 COMMIT! 

 

 

 

 

 


 

 

<SELF JOIN>

 

 

 

- 데이터를 가지고 있는 하나의 테이블을 메모리에서 별명을 두개로 사용하여 호출하는 방법이다.



 

 

 

 


 

 

 

<FULL JOIN>

 

 

 

- 양쪽을 다 볼 수 있다.

 

 

 

 

 

openclose