내부 조인과 외부 조인의 차이

Anonim

내부 조인과 외부 조인

내부 조인과 외부 조인은 데이터베이스의 쿼리 처리에 사용되는 SQL 조인 방법 중 두 가지입니다. 이들은 조인 절 (다른 두 조인은 왼쪽 조인과 오른쪽 조인)의 계열에 속합니다. 그러나 특수 상황에 사용할 수있는 자체 조인이 있습니다. 조인의 목적은 공통 값을 사용하여 두 테이블에 필드를 결합하는 것입니다. 이러한 조인은 데이터베이스의 여러 테이블에있는 레코드를 결합합니다. 결과 세트를 작성하여 다른 테이블로 저장할 수 있습니다.

내부 결합이란 무엇입니까?

가장 일반적으로 사용되는 SQL 조인 작업은 내부 조인입니다. 응용 프로그램에서 사용되는 기본 조인 유형으로 간주 될 수 있습니다. 내부 조인은 조인 - 술어를 사용하여 두 테이블을 결합합니다. 두 테이블이 A와 B라고 가정하면 join-predicate는 A와 B 행을 비교하여 술어를 만족시키는 모든 쌍을 찾습니다. A 및 B 테이블의 만족 된 모든 행의 열 값을 결합하여 결과를 만듭니다. 먼저 모든 레코드의 십자가 조인 (카디 전 곱)을 취한 다음 조인 - 조건자를 만족하는 레코드 만 리턴하는 것으로 볼 수 있습니다. 그러나 실제로 카티 전 곱은 계산이되지 않습니다. 이는 매우 비효율적이기 때문입니다. 대신 해시 조인 또는 정렬 병합 조인이 사용됩니다.

-> ->

외부 참여 란 무엇입니까?

내부 조인과 달리 외부 조인은 일치하는 레코드를 찾을 수 없더라도 모든 레코드를 유지합니다. 즉, 외부 조인은 결과에 나타나는 일치 레코드를 찾기 위해 레코드가 필요합니다. 대신 모든 레코드를 반환하지만 일치하지 않는 레코드는 null 값을 갖습니다. 외부 조인은 세 가지 하위 범주로 나뉩니다. 이들은 외부 조인, 오른쪽 외부 조인 및 완전 외부 조인으로 남습니다. 이 차별화는 일치하지 않는 레코드가있을 때 테이블의 테이블 (왼쪽 테이블, 오른쪽 테이블 또는 두 테이블)이 유지되는 것을 기반으로합니다. 왼쪽 외부 조인 (단순히 왼쪽 조인이라고도 함)은 왼쪽 테이블의 모든 레코드를 보유합니다. 즉, 숫자 일치 레코드가 0 인 경우에도 여전히 결과 테이블에 레코드가 있지만 B의 모든 컬럼에 대해 널 값을 갖습니다. 즉, 왼쪽 테이블의 모든 값은 오른쪽에서 일치하는 값과 함께 리턴됩니다 테이블 (또는 일치하지 않는 경우 null 값). 왼쪽 표의 여러 행의 값이 오른쪽 표의 단일 행과 일치하면 오른쪽 표의 행이 필요에 따라 반복됩니다. 오른쪽 외부 조인은 왼쪽 외부 조인과 거의 비슷하지만 테이블 처리는 존중됩니다. 즉, 일치하는 왼쪽 테이블 값 (일치하지 않는 오른쪽 값의 경우 null 값)이있는 결과가 오른쪽 테이블의 모든 행을 한 번 이상 갖게됩니다. 전체 외부 조인은 왼쪽 및 오른쪽 외부 조인보다 포괄적입니다. 왼쪽 및 오른쪽 바깥 쪽을 모두 결합한 효과를 결합합니다.

내부 결합과 외부 결합의 차이점은 무엇입니까?

내부 조인은 결과에서 일치하지 않는 행을 유지하지 않지만 외부 조인은 사용 된 외부 조인에 따라 하나 이상의 테이블에서 모든 레코드를 유지합니다. 결과 테이블의 일치하지 않는 행에 정보가없는 경우의 동작은 바람직하지 않습니다. (내부 조인 대신에) 항상 외부 조인 중 하나를 사용해야합니다. 일치하는 항목이 없으면 내부 조인은 결과를 생성하지 않을 수도 있습니다. 그러나 외부 조인은 일치하는 행이없는 경우에도 항상 결과 테이블을 생성합니다. 내부 조인은 항상 값이있는 테이블을 반환합니다 (반환되는 경우). 그러나 외부 조인은 널값을 갖는 테이블을 생성 할 수 있습니다.