본문 바로가기
컴퓨터공학/데이터베이스(database)

database table join

by 바코94 2024. 5. 14.
  • join 의미
    • 두 개 이상의 table들에 있는 데이터를 한 번에 조회
  • implicit join vs explicit join
    • implicit join: where 절에 join condition 명시. 안 쓰는 방식
    • explicit join: table1 JOIN table2 + ON join condition
      • join condition: 비교 연산 가능, join condition 이 true인 튜플만이 포함됨
  • inner join vs outer join
    • inner join: 두 테이블에서 join condition 만족하는 tuple들로 result table 만듬
    •  
  • left outer join
    • 좌측 테이블 기준으로 join condition에 해당하는 attribute가 true아닌 경우 우측 테이블 값들은 null로 표기
  • right outer join
    • left outer join의 반대
  • full outer join
    • 좌측 테이블 테이터가 있는 경우엔 left outer join, 우측 테이블 데이터가 있는 경우엔 right outer join
  • equi join
    • join condition에서 =(equality comparator)을 사용하는 join
    • 두가지 시각
      • inner/outer 상관 없이 = 를 사용한 join이면 equi join
      • inner 에서 =를 사용한 경우에만 equi join
  • using 키워드를 사용한 조인
    • 두 테이블이 equi join할 때 join 하는 attribute(s) 이름이 같을떄 using 으로 간략히 표현
    • 두 개 이상일 때는 using (attr1, attr2) 로 괄호에 표기
  • natural join
    • 두 테이블간 같은 attribute 이름이면 해당 attribute에 대해 equi join을 수행
  • cross join
    • 두 테이블의 tuple pair 로 만들 수 있는 모든 조합(cartesian product)을 result table로 반환
    • 문법
      • implicit: table1, table2
      • explicit: table1 cross join table2
    • mysql에 대한 지식
      • cross join 와 on(or using) 같이 쓰면 inner join
      • inner join에 on(or using)이 없으면 cross join
  • self join
    • 같은 테이블 대상으로 조인
      • table1 join table2