카테고리 없음
SQL JOIN 종류와 조인의 예제
수박비빔밥
2024. 6. 9. 23:39
반응형
SQL Join 정의
JOIN은 SQL에서 두 개 이상의 테이블을 결합하여 데이터를 조회하는 데 사용됩니다. 테이블 간의 연관된 데이터를 기반으로 레코드를 결합하여 보다 복합적인 질의를 수행할 수 있습니다. JOIN 연산은 관계형 데이터베이스의 핵심 기능 중 하나로, 테이블 간의 관계를 정의하고 데이터를 통합하는 데 매우 유용합니다.
종류별 Join
- INNER JOIN:
- 두 테이블 간의 연관된 레코드만 반환합니다. 교집합을 구하는 것과 유사합니다.
- LEFT JOIN (LEFT OUTER JOIN):
- 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 연관된 레코드를 반환합니다. 왼쪽 테이블에 일치하는 레코드가 없는 경우, 오른쪽 테이블의 값은 NULL로 표시됩니다.
- RIGHT JOIN (RIGHT OUTER JOIN):
- 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 연관된 레코드를 반환합니다. 오른쪽 테이블에 일치하는 레코드가 없는 경우, 왼쪽 테이블의 값은 NULL로 표시됩니다.
- FULL JOIN (FULL OUTER JOIN):
- 두 테이블의 모든 레코드를 반환합니다. 일치하는 레코드가 없는 경우, 다른 테이블의 값은 NULL로 표시됩니다.
- CROSS JOIN:
- 두 테이블의 모든 가능한 조합을 반환합니다. 각 테이블의 레코드가 서로 교차 결합됩니다.
- SELF JOIN:
- 같은 테이블의 두 인스턴스를 결합하여 자신과 조인합니다. 주로 테이블의 계층 구조를 표현할 때 사용됩니다.
가장 많이 사용하는 (inner) join 예시
Students 테이블:
student_idstudent_name
1 | Alice |
2 | Bob |
3 | Charlie |
Enrollments 테이블:
enrollment_idstudent_idcourse_name
101 | 1 | Math |
102 | 2 | Science |
103 | 1 | History |
104 | 4 | Art |
INNER JOIN 예시
INNER JOIN을 사용하여 Students 테이블과 Enrollments 테이블을 student_id를 기준으로 조인하여 각 학생이 등록한 과목을 조회할 수 있습니다.

결과
이 쿼리는 두 테이블의 교집합(공통된 student_id가 있는 레코드)을 반환합니다.
student_idstudent_namecourse_name
1 | Alice | Math |
1 | Alice | History |
2 | Bob | Science |
반응형