\ [SQL]Inner Join vs Outer Join :: Something New
728x90
반응형

INNER JOIN과 OUTER JOIN은 SQL에서 사용되는 두 가지 중요한 JOIN 유형으로, 두 개 이상의 테이블을 결합할 때 사용됩니다. 각각의 JOIN 유형은 결합 후 결과에 포함되는 행의 기준이 다릅니다. 다음은 이 두 JOIN 유형을 비교하고 예시를 통해 설명한 것입니다.

INNER JOIN

INNER JOIN은 두 테이블에서 공통된 값을 가지는 행만 반환합니다. 즉, 조인 조건을 만족하는 행들만 결과에 포함됩니다.

예시

두 개의 테이블 Students와 Courses가 있다고 가정해 보겠습니다.

Students 테이블

StudentIDName

1 Alice
2 Bob
3 Charlie

Courses 테이블

CourseIDStudentIDCourseName

101 1 Math
102 2 Science
103 4 History
SELECT Students.StudentID, Students.Name, Courses.CourseName
FROM Students
INNER JOIN Courses ON Students.StudentID = Courses.StudentID;

결과

StudentIDNameCourseName

1 Alice Math
2 Bob Science
  • INNER JOIN은 Students.StudentID와 Courses.StudentID가 일치하는 행만 반환합니다.
  • StudentID가 3인 Charlie와 4인 History는 결과에 포함되지 않습니다.

OUTER JOIN

OUTER JOIN은 세 가지 종류가 있습니다: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN. 이들은 각각 좌측, 우측, 또는 양쪽 테이블의 모든 행을 반환하며, 조인 조건을 만족하지 않는 경우 NULL을 포함합니다.

LEFT OUTER JOIN

LEFT OUTER JOIN은 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우, 오른쪽 테이블의 컬럼은 NULL이 됩니다.

SELECT Students.StudentID, Students.Name, Courses.CourseName
FROM Students
LEFT OUTER JOIN Courses ON Students.StudentID = Courses.StudentID;

결과

StudentIDNameCourseName

1 Alice Math
2 Bob Science
3 Charlie NULL
  • LEFT OUTER JOIN은 모든 Students 테이블의 행을 포함하며, 일치하지 않는 경우 CourseName이 NULL로 채워집니다.

RIGHT OUTER JOIN

RIGHT OUTER JOIN은 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우, 왼쪽 테이블의 컬럼은 NULL이 됩니다.

SELECT Students.StudentID, Students.Name, Courses.CourseName
FROM Students
RIGHT OUTER JOIN Courses ON Students.StudentID = Courses.StudentID;

결과

StudentIDNameCourseName

1 Alice Math
2 Bob Science
NULL NULL History
  • RIGHT OUTER JOIN은 모든 Courses 테이블의 행을 포함하며, 일치하지 않는 경우 Students의 컬럼이 NULL로 채워집니다.

FULL OUTER JOIN

FULL OUTER JOIN은 양쪽 테이블의 모든 행을 포함하며, 일치하지 않는 경우 각 테이블의 컬럼이 NULL로 채워집니다.

SELECT Students.StudentID, Students.Name, Courses.CourseName
FROM Students
FULL OUTER JOIN Courses ON Students.StudentID = Courses.StudentID;

결과

StudentIDNameCourseName

1 Alice Math
2 Bob Science
3 Charlie NULL
NULL NULL History
  • FULL OUTER JOIN은 양쪽 테이블의 모든 행을 포함하며, 일치하지 않는 경우 각 테이블의 컬럼이 NULL로 채워집니다.

요약

  • INNER JOIN: 두 테이블에서 일치하는 행만 반환.
  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행 반환.
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행 반환.
  • FULL OUTER JOIN: 양쪽 테이블의 모든 행을 포함하며, 일치하지 않는 경우 NULL로 채워짐.
728x90

'JAVA Spring FRAMEWORK' 카테고리의 다른 글

[JAVA]RESTful API 서버란  (6) 2024.11.13
[JAVA]JDBC란?  (0) 2024.11.13
디자인 패턴이란?  (0) 2024.06.24
[Spring Boot ] Spring Initializr 로 시작하기  (0) 2023.03.14
[Spring]FormTag & DataBinding - (1)TextField  (1) 2021.11.29

+ Recent posts