본문 바로가기

데이터베이스

Inner Join vs Outer Join

- 이번 글에서는 데이터베이스의 2가지 Join 방식인 Inner Join과 Outer Join의 차이점에 대해서 알아보겠습니다.

  Join이란 RDB에서 2개 이상의 테이블을 결합하는 것을 의미합니다.  

  Join을 사용하는 목적은 2개 이상의 테이블의 정보를 결합해서 보여주고 싶기 때문입니다.  

  우선, Inner Join에 대해서 알아보겠습니다. 

  

1) Inner Join

- Inner Join은 두 테이블에 공통된 내용만 Join하는 방식입니다. 

  이를 벤 다이어그램으로 나타내면 다음과 같습니다. 

 

- 예를 들어, Student 테이블과 StudentCourse 테이블이 있다고 할 때,

  두 테이블을 Inner Join하면 다음과 같이 SQL 쿼리를 작성할 수 있습니다. 

SELECT STUDENT_COURSE.ID, STUDENT.NAME, STUDENT.AGE FROM STUDENT
INNER JOIN STUDENT_COURSE
ON STUDENT.ROLL_NO = STUDENT_COURSE.ROLL_NO;

- 그 결과는 다음과 같습니다. 

 

2) Outer Join

- Outer Join은 한 쪽 테이블을 기준으로 Join 하는 방식입니다.

  크게 Left Outer Join, Right Outer Join, Full Outer Join 등이 있습니다. 

  이 중에서 Left Outer Join과 Right Outer Join에 대해 살펴보겠습니다. 

 

(1) Left Outer Join

- Left Outer Join은 왼쪽 테이블을 기준으로 Join을 하는 방식입니다.  

 

- Student 테이블과 StudentCourse 테이블이 있다고 할 때,

  StudentCourse 테이블을 기준으로 Left Outer Join을 하면 다음과 같이 나타낼 수 있습니다. 

SELECT Student.NAME, Student_Course.ID
FROM Student
LEFT JOIN Student_Course
ON Student.ROLL_NO = Student_Course.ROLL_NO;

- 그 결과는 다음과 같습니다. 

 

 

(2) Right Outer Join

- Right Outer Join은 오른쪽 테이블을 기준으로 Join 하는 방식입니다.  

 

 

- Student 테이블과 StudentCourse 테이블이 있다고 할 때,

  Right Outer Join을 하면 다음과 같이 나타낼 수 있습니다. 

SELECT Student.NAME, StudentCourse.ID
FROM Student
RIGHT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;

 

- 참고

기출로 대비하는 개발자 전공면접

https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/ 

'데이터베이스' 카테고리의 다른 글

데이터베이스 기본  (0) 2022.08.01
데이터베이스 Key  (0) 2022.08.01
RDB vs NoSQL  (0) 2022.07.26