JOIN 명령문의 종류와 활용 경우를 설명해보세요.
- JOIN (조인) 연산자
두 개 이상의 테이블을 연결하여 데이터를 검색할 때 사용한다. 데이터베이스 시스템과 그 환경의 성능을 확인하는데도 사용할 수 있다. (느린 쿼리를 사용하여 비교)
- 조인의 종류
▪ 내부조인(INNER JOIN) - 조건을 사용해서 두 테이블의 레코드를 결합한다.
▪ 외부조인(OUTER JOIN) - 내부조인과 비슷하나 일치하지 않는 열까지 반환하며 그 열은NULL로 반환한다.
▪ 동등 조인(EQUI JOIN) - 내부조인이다. 두 테이블 사이의 같은 행들을 반환한다.
▪ 비동등 조인(NON-EQUI JOIN) - 내부조인이다. 두 테이블 사이의 같지 않은 행들을 반환한다.
▪ 자연 조인(NATURAL JOIN) - 'ON' 절이 없는 내부조인. 같은 열 이름을 가진 두 테이블을 조인할 때만 작동
▪ 크로스 조인(CROSS JOIN) - 한 테이블의 모든 행과 다른 테이블의 모든 행이 연결되는 모든 경우를 반환.
▪ 카티젼 조인(CARTESIAN JOIN) - 크로스 조인의 한 종류. 조건이 없다. (크로스 프로덕트)
▪ 콤마 조인(COMMA JOIN) - 콤마가 CROSS JOIN 키워드 대신 사용된다는 점을 제외하면 크로스 조인과 같다.
▪ 셀프 조인(SELF JOIN) - 자기 자신을 조인한다.
- CROSS JOIN
가장 간단한 조인의 기본으로 조인된 테이블의 통합된 모든 행을 출력하고 중복되는 행은 제거된다. 모든 행을 다 가져오기 때문에 크로스 조인은 정규화된 데이터베이스에서는 거의 사용하지 않는다.
▪ 한 테이블의 모든 행과 다른 테이블의 모든 행을 짝지어 반환한다.
▪ 카티전 조인, 카티전 프로덕트 등이 있다.
▲ Cross join
- 내부 조인(INNER JOIN)
▪ 조건을 사용하여 두 테이블의 레코드를 결합한다.
▪ 동등 조인, 비동등 조인, 자연 조인 등이 있다.
1) 동등 조인(EQUI JOIN) : 두 테이블 사이의 같은 행들을 반환한다.
2) 비동등 조인(NON-EQUI JOIN) : 두 테이블 사이의 같지 않은 모든 행들을 반환한다.
- 외부 조인(OUTER JOIN)
▪ 내부 조인과 유사하며 일치하는 것이 없을 경우 NULL로 표시한다.
▪ 왼쪽 테이블은 FROM 바로 다음에 나오는 테이블이고, JOIN 뒤에 나오는 테이블이 오른쪽 테이블이다.
▪ 왼쪽 외부 조인(LEFT OUTER JOIN)과 오른쪽 외부 조인(RIGHT OUTER JOIN)이 있다.
▪ 왼쪽 외부 조인을 사용할 경우 왼쪽 테이블을 오른쪽 테이블에 비교한다. 오른쪽 외부 조인도 그 반대로 동작한다. 일대다 관계에 유용하다.
- 셀프 조인(SELF JOIN)
같은 테이블 내에서 다른 행과 공통되는 값을 가진 행을 찾고 싶을 때 사용하고 한 테이블 내에서 일치하는 데이터를 찾는데 유용하다. self-join은 테이블의 자료를 검증하는 방법으로도 사용된다. self-join은 관리자가 하나의 테이블에 관련된 여러 개의 데이터를 공통으로 관리하기 위해 사용되며, 동조 조인과 유사하고 다른 점은 하나의 테이블에서 조인이 일어나므로 자신의 테이블을 마치 2개의 테이블이 존재하는 것과 같이 가정하여 작업하고, 가명을 사용해야 한다.
▪ 자기 자신을 조인한다.
▪ 자기 자신을 하나씩 비교하기 위해 사용한다.
▪ 하나의 테이블로 같은 정보를 가진 테이블이 두 개 있는 것처럼 쿼리를 보낼 수 있다.
커뮤니티 Q&A
위 이론과 관련된 게시글이에요.
이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!
게시글 작성하기