Oracle (+) 연산자는 무슨 의미인가?

Oracle 2020. 12. 27. 23:05

오늘은 Oracle 에서 통영되는 질의문인 (+) 연산자에 대해서 기록을 해봅니다.

(+) 연산자는 어떠한 역할을 가지고 있는가? Mysql 에서는 OUTER JOIN 와 같은 의미라고 해도 무방하다고 생각합니다.

 

예시를 통하여 (+) 연산자를 알아보시다.

SELECT * FROM TEST A LEFT OUTER JOIN rank_test B ON A.NAME = B.NAME;
SELECT * FROM TEST A, rank_test B WHERE A.NAME = B.NAME(+);

위의 2개의 쿼리문으로만 봣을때는 결과가 동일하게 나옵니다. 여기서 (+) 연산자에 대해서 눈치 채셨나요?

▲해당 위의 테이블을 참조하여 생각해보자.

 

 SELECT * FROM TEST A LEFT OUTER JOIN rank_test B ON A.NAME = B.NAME;

해당 코드는 TEST 테이블 RANK_TEST 테이블OUTER JOIN을 하는데 LEFT 명칭을 붙여서 TEST 테이블을 다 출력되도록 OUTER JOIN 을 걸은 것을 볼 수 있다.

 

SELECT * FROM TEST A, rank_test B WHERE A.NAME = B.NAME(+);

이 쿼리문은 어떠한 의미를 가지고 있을까? 일단 결과는 위에서 말했다 시피 같다.

왜??? 같은 결과가 나오는 것인가?

쿼리문에서 보면은 B.NAME(+) 에 (+) 연산자를 사용할 것을 확인 할 수 있다.

아~ 그럼 A.NAME = B.NAME(+) 해당 조건에서 A 라는 별칭을 사용하고 있는 TEST 테이블이 OUTER JOIN이 걸리는걸 확인 가능하다.

반대로 A.NAME(+) =B.NAME 이렇게 사용한다면 B별칭을 사용하고 있는 RANK_TEST 테이블이 OUTER JOIN 이 걸릴 것이다.

 

※ 간단하게 (+) 연산자에 대해서 알아보았습니다.

'Oracle' 카테고리의 다른 글

Oracle 순위함수의 사용,간단한 사용예제  (0) 2020.12.27

설정

트랙백

댓글