Inner JOIN은 가장 일반적으로 사용되는 연결 작업입니다. 수학 용어로 설명하면 이 문장은 다음과 같이 다시 작성할 수 있습니다. 집합 이론의 관점에서는 두 집합의 교집합이 필요하고 데카르트 곱의 관점에서는 ON 조건을 충족하는 데카르트 곱 요소를 필터링해야 합니다.
내 생각에는 내부 조인은 동등 조인과 거의 같습니다. 자연 조인은 내부 조인 간의 특별한 연결입니다.
자연 조인이란 무엇인가요?
자연 조인은 두 관계에서 비교되는 구성 요소가 동일한 속성 그룹이어야 하며 중복된 속성 열이 결과에서 제거되어야 하는 특별한 등가 조인입니다.
Equijoin이 무엇인가요?
Equijoin은 관계 연산-조인 연산의 일반적인 연결 방법입니다. 연결 연산자가 "="일 때, 즉 &theta=0
일 때 조건부 연결(또는 θ 연결)의 특수한 경우입니다. 분석 예:
Table aaa
테이블 bbb:
aaa 테이블과 bbb 테이블의 C B D 속성이 동일한 데이터를 쿼리합니다.
Equijoin 쿼리:
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
결과:
자연 조인 쿼리:
-- 自然连接用关键字 natural join SELECT*from aaa natural join bbb;
결과:
위에서 two 결과로부터 우리는 Equijoin이 두 테이블의 교차점에서 동일한 값을 가진 특정 데이터를 선택한다는 결론을 내릴 수 있습니다. 자연 조인은 두 테이블에서 동일한 속성과 동일한 속성 값을 가진 데이터를 가져와 이러한 동일한 속성 열을 제거하는 것을 의미합니다.
첫 번째 방법: where
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
두 번째 방법: 내부 조인
select*from aaa inner join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
세 번째 방법: Join
select*from aaa join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
네 번째 방법: STRAIGHT_JOIN
select*from aaa STRAIGHT_JOIN bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
다음 세 가지 방법은 동일한 효과를 갖습니다. 세 번째 방법 종류는 두 번째 종류의 약어로 이해될 수 있습니다. 네 번째 유형과 두 번째 유형의 주요 차이점은 네 번째 유형의 성능이 약간 낮습니다.
외부 조인은 왼쪽 외부 조인, 오른쪽 외부 조인의 세 가지 유형으로 나뉩니다. 완전 외부 조인. 이 기능을 수행하기 위해 SQL 문에서 왼쪽 조인, 오른쪽 조인 및 전체 조인을 사용할 수 있습니다.
왼쪽 조인이란 무엇인가요?
LEFT JOIN은 테이블 A와 테이블 B의 교차점을 취하고 왼쪽 테이블의 나머지 데이터를 포함하는 것을 의미합니다. 그래도 데카르트 곱의 관점에서 볼 때 먼저 ON 절의 조건을 충족하는 레코드를 선택한 다음 왼쪽 테이블 A에 나머지 레코드를 추가해야 합니다
코드 구현:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
결과:
왼쪽 조인이란 무엇인가요?
마찬가지로 RIGHT JOIN은 테이블 A와 테이블 B의 교집합과 테이블 B의 나머지 데이터를 얻는 것과 같습니다. 올바른 조인을 설명할 때 데카르트 곱의 관점에서 시작할 수 있습니다. 즉, ON 조건을 충족하는 레코드를 선택하고 올바른 테이블의 선택되지 않은 레코드를 해당 레코드에 추가할 수 있습니다
코드 구현:
select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
결과:
완전 외부 조인은 두 테이블 A와 B의 집합의 합집합을 찾는 것입니다. Cartesian product 관점에서는 Cartesian product에서 ON 절 조건이 true인 레코드를 선택하고, 왼쪽 테이블에 나머지 레코드를 추가하고, 마지막으로 오른쪽 테이블에 나머지 레코드를 추가하는 것이다. 또한 MySQL은 OUTER JOIN을 지원하지 않지만 Left 조인과 Right 조인의 결과에 대해 UNION 연산을 구현할 수 있습니다.
코드 구현:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E union select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
결과:
위 내용은 MySQL 연결 쿼리란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!