카테고리 없음

SQL JOIN 종류와 조인의 예제

수박비빔밥 2024. 6. 9. 23:39
반응형

SQL Join 정의

JOIN은 SQL에서 두 개 이상의 테이블을 결합하여 데이터를 조회하는 데 사용됩니다. 테이블 간의 연관된 데이터를 기반으로 레코드를 결합하여 보다 복합적인 질의를 수행할 수 있습니다. JOIN 연산은 관계형 데이터베이스의 핵심 기능 중 하나로, 테이블 간의 관계를 정의하고 데이터를 통합하는 데 매우 유용합니다.

종류별 Join

  1. INNER JOIN:
    • 두 테이블 간의 연관된 레코드만 반환합니다. 교집합을 구하는 것과 유사합니다.
     
  2. LEFT JOIN (LEFT OUTER JOIN):
    • 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 연관된 레코드를 반환합니다. 왼쪽 테이블에 일치하는 레코드가 없는 경우, 오른쪽 테이블의 값은 NULL로 표시됩니다.
     
  3. RIGHT JOIN (RIGHT OUTER JOIN):
    • 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 연관된 레코드를 반환합니다. 오른쪽 테이블에 일치하는 레코드가 없는 경우, 왼쪽 테이블의 값은 NULL로 표시됩니다.
     
  4. FULL JOIN (FULL OUTER JOIN):
    • 두 테이블의 모든 레코드를 반환합니다. 일치하는 레코드가 없는 경우, 다른 테이블의 값은 NULL로 표시됩니다.
     
  5. CROSS JOIN:
    • 두 테이블의 모든 가능한 조합을 반환합니다. 각 테이블의 레코드가 서로 교차 결합됩니다.
     
  6. 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

 

반응형