본문 바로가기

BackEnd/Oracle

inner join과 outer join의 차이점

반응형


1. INNER JOIN  :


-  두개의 집합 (A, B) 의 교집합   이라고 이해해보자.

   

A {1,2,3}  ,  B {2,3,4 } 이면  {2,3} 이 교집합.

  

   모두의 값에 있는 행들만 포함시키고 그렇지 않는 행들은 제외.


 

2. OUTER JOIN


-  OUTER JOIN 에는 LEFT , RIGHT, FULL OUTER JOIN 등의 세가지 형식이 있다.


   두 테이블에서 지정된 쪽인 LEFT 또는 RIGHT 쪽의 모든 결과를 보여준후 반대쪽에 매칭되는 값


   이 없어도 보여주는 JOIN 이다.

 

  JOIN 이전에 나오는 테이블이 왼쪽(LEFT)테이블이 되고, JOIN 이후에 나오는 테이블은 오른쪽


 (RIGHT)테이블이 된다.


 

3. 예시


CREATE TABLE T1 INT  PRIMARY KEY 
               
VARCHAR(20
) ) 

INSERT INTO T1 (A,BVALUES (1,'김대중'
) 
INSERT INTO T1 (A,BVALUES (2,'김영삼'
) 
INSERT INTO T1 (A,BVALUES (3,'노태우'
) 
INSERT INTO T1 (A,BVALUES (4,'전두환'
) 


CREATE TABLE T2 
INT  PRIMARY KEY 
               
VARCHAR(20
) ) 

INSERT INTO T2 (A,CVALUES (2,'SM5'
) 
INSERT INTO T2 (A,CVALUES (3,'SONATA'
) 

--INNER JOIN
--T1, T2 의 INNER JOIN  이면 차를 소유하고 있는 사람만 추출된다. 

-- ANSI SQL 
SELECT T1.A,T1.B
T2.C  
FROM T1 INNER JOIN T2 ON T1.A=
T2.A 




-- LEFT OUTER JOIN  : 좌측을 기준 

-- ANSI SQL 
SELECT T1.A,T1.B
T2.C  
FROM T1 LEFT  OUTER JOIN T2 ON T1.A=
T2.A 





-- RIGHT OUTER JOIN  : 우측을 기준 

-- ANSI SQL 
SELECT T1.A,T1.B
T2.C  
FROM T1 RIGHT  OUTER JOIN T2 ON T1.A=
T2.A 


 



-- FULL OUTER JOIN  : 양쪽 테이블을 둘다 기준으로 

-- ANSI SQL 
SELECT T1.A,T1.B
T2.C  
FROM T1 FULL  OUTER JOIN T2 ON T1.A=
T2.A 

 
                
                                                      


반응형

'BackEnd > Oracle' 카테고리의 다른 글

비밀번호 만료 재설정  (0) 2022.01.17
오라클 페이징 처리  (0) 2020.04.30
기본키,외래키  (0) 2019.06.29