컴퓨터프로그래밍

SQL INNER JOIN 문 : 예제, 구문 및 기능

모든 데이터베이스의 개발은 다양한 정보로 테이블을 작성하고 채우는 것뿐만 아니라 데이터를 사용하여 작업하는 것을 의미합니다. 테이블에서 데이터를 선택하고 보고서를 생성하기위한 다양한 작업을 올바르게 수행하기 위해 표준 Select 구문이 사용됩니다.

표에서 데이터 가져 오기

데이터 선택 또는 특정 보고서 작성 작업을 고려하면이 작업의 복잡성 수준을 결정할 수 있습니다. 일반적으로 온라인 상점이나 대기업 등에서 형성되는 심각한 (정보량에 대한) 데이터베이스 작업을 할 때 데이터 샘플링은 하나의 테이블에만 국한되지 않습니다. 일반적으로 샘플은 상호 연결된 테이블뿐만 아니라 할당 된 작업에 따라 프로그래머가 만드는 중첩 된 쿼리 / 하위 쿼리도 상당히 많을 수 있습니다. 한 테이블에서 샘플링하려면 가장 단순한 디자인을 사용할 수 있습니다.

사람에게서 * 선택하십시오.

여기서 Person은 데이터를 선택할 테이블의 이름입니다.

여러 테이블에서 데이터를 선택해야하는 경우 표준 디자인 중 하나를 사용하여 여러 테이블을 결합 할 수 있습니다.

추가 테이블을 연결하는 방법

초기 수준에서 이러한 구조의 사용을 고려할 경우 샘플에 필요한 수의 테이블을 연결하기위한 다음과 같은 메커니즘을 구별 할 수 있습니다.

  1. 연산자 내부 조인.
  2. 왼쪽 결합 또는 두 번째 녹음 방법 인 왼쪽 외부 조인입니다.
  3. 교차 가입.
  4. 전체 가입.

실제적으로 조인 연산자 테이블을 사용하는 것은 SQL - Inner Join 연산자를 사용하여 고려할 수 있습니다. 사용 예는 다음과 같습니다.

사람에게서 * 선택하십시오.

Su_Person = Pe_ID의 내부 조인 하위 분할

SQL 언어 및 조인 내부 조인 연산자는 둘 이상의 테이블을 조인 할뿐만 아니라 다른 하위 쿼리를 연결하는 데 사용할 수 있으므로 데이터베이스 관리자의 작업이 크게 용이 해지며 원칙적으로 특정 구조화 된 쿼리의 실행 속도를 크게 향상시킬 수 있습니다.

테이블의 데이터를 행 단위로 결합

많은 수의 하위 쿼리를 연결하고 행별로 단일 테이블에 데이터를 조합하는 것을 고려하면 Union 및 Union All 연산자를 사용할 수도 있습니다.

이러한 구조의 적용은 개발자와 결과 앞에 설정되는 작업에 따라 달라지며 결국 개발자가 달성하기를 원합니다.

연산자 설명 내부 결합

대부분의 경우 내부 조인 연산자를 사용하여 SQL의 여러 테이블을 조인합니다. SQL의 Inner Join에 대한 설명은 일반 프로그래머가 이해하기에 매우 간단합니다. 이는 데이터베이스를 이해하기 시작한 단계입니다. 이 구조의 작동 메커니즘에 대한 설명을 고려해 보면 다음과 같은 그림이됩니다. 연산자 전체의 논리는 쿼리에 포함 된 각 테이블에있는 데이터 만 교차하고 샘플링 할 가능성을 기반으로합니다.

이 작업을 그래픽 해석의 관점에서 살펴보면 SQL Inner Join의 구조를 알 수 있습니다.이 예제는 다음과 같은 스키마를 사용하여 표시 할 수 있습니다.

예를 들어 두 개의 테이블이 있고 그 중 다이어그램이 그림에 나와 있습니다. 그들은 차례로 다른 수의 기록을 가지고 있습니다. 각 테이블에는 함께 연결된 필드가 있습니다. 그림을 기준으로 연산자의 작업을 설명하려고하면 반환되는 결과는 두 테이블의 레코드 세트 형식으로되어 관련 필드 수가 일치합니다. 간단히 말해서, 쿼리는 테이블 번호 1에있는 레코드 인 테이블 번호 2의 레코드 만 반환합니다.

내부 조인 연산자의 구문

앞서 언급했듯이 내부 조인 연산자, 즉 구문은 매우 간단합니다. 단일 샘플 내에서 테이블 간의 링크를 구성하려면 프로그램 SQL 코드의 한 줄에 작성된 연산자를 작성하는 데 다음과 같은 주요 스키마를 기억하고 사용하는 것으로 충분합니다.

  • 내부 [우리가 연결할 테이블의 키 필드]에 [테이블 이름] 조인 = [연결된 테이블의 키 필드].

이 연산자의 통신에는 테이블의 기본 키가 사용됩니다. 원칙적으로 직원에 대한 정보를 저장하는 테이블 그룹에서 이전에 설명한 Person과 Subdivision에는 적어도 하나의 유사한 레코드가 있습니다. 이제 SQL Inner Join 문을 조금 더 자세히 살펴 보겠습니다. 예를 들어 좀 더 일찍 보여졌습니다.

단일 테이블 선택에 대한 연결의 예 및 설명

회사에 근무하는 모든 직원에 대한 정보를 저장하는 사람 테이블이 있습니다. 이 테이블의 기본 키는 Pe_ID 필드입니다. 그냥 그것에 무리가있을 것입니다.

두 번째 테이블 하위 구분에는 직원이 근무하는 부서에 대한 정보가 저장됩니다. 이는 차례로 Person 테이블과 함께 Su_Person 필드의 도움과 연관됩니다. 이것은 무엇을 의미합니까? 데이터 스키마를 기반으로 Employees 테이블의 각 항목에 대한 단위 테이블에는 작업하는 부서에 대한 정보가 있다고 말할 수 있습니다. 이 연결을 위해 내부 조인 연산자가 작동합니다.

보다 이해하기 쉽도록 SQL Inner Join 연산자 (한 두 테이블에 대한 사용 예)를 고려하십시오. 한 테이블에 대한 예제를 생각해 보면 모든 것이 간단합니다.

사람에게서 * 선택하십시오.

Su_Person = Pe_ID의 내부 조인 하위 분할

두 테이블과 하위 쿼리를 연결하는 예

위의 방식으로 여러 테이블의 데이터를 선택하는 데 사용할 수있는 SQL 내부 조인 연산자는 약간 더 복잡한 원리로 작동합니다. 두 테이블의 경우 문제가 복잡해집니다. 예를 들어 각 부서의 모든 부서에 대한 정보를 저장하는 Depart 테이블이 있습니다. 이 표에서 부서 x 호와 사원 x 호가 기 록되며 각 부서의 이름으로 데이터 샘플을 보충해야합니다. 앞서 살펴본 바와 같이이 문제를 해결하기 위해 두 가지 방법을 사용할 수 있습니다.

첫 번째 방법은 부서 테이블을 샘플에 연결하는 것입니다. 이 경우 다음과 같이 쿼리를 구성 할 수 있습니다.

Person으로부터 Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name을 선택하십시오.

Su_Person = Pe_ID의 내부 조인 하위 분할

내부 조인은 Su_Depart = Dep_ID 및 Pe_Depart = Dep_ID에서 출발합니다.

문제를 해결하는 두 번째 방법은 부서 테이블에서 모든 데이터가 아니라 필수 데이터 만 선택되는 하위 쿼리를 사용하는 것입니다. 첫 번째 방법과 달리 쿼리 시간이 단축됩니다.

Person으로부터 Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name을 선택하십시오.

Su_Person = Pe_ID의 내부 조인 하위 분할

Su_Depart = Dep_ID 및 Pe_Depart = Dep_ID에서 T로 내부 결합 (Dep_ID, Dep_Name, Dep_Dart에서 Pe_Depart 선택)

이 디자인이 항상 쿼리 속도를 향상시키는 것은 아닙니다. 때로는 임시 테이블에서 추가 샘플링 데이터를 사용해야하는 경우가 있으며 (볼륨이 너무 큰 경우) 주 샘플과 결합됩니다.

많은 수의 테이블에서 선택을 위해 내부 결합 연산자 사용의 예

복잡한 쿼리를 작성하는 것은 데이터를 검색하기 위해 서로 관련된 많은 수의 테이블과 하위 쿼리를 사용하는 것입니다. 이러한 요구 사항은 SQL 내부 조인 구문을 충족시킬 수 있습니다. 이 경우에 연산자를 사용하는 예는 많은 데이터 저장 위치의 샘플뿐만 아니라 많은 수의 중첩 된 하위 쿼리에서도 복잡 할 수 있습니다. 특정 예를 들어, 시스템 테이블 (내부 조인 SQL 연산자)에서 샘플 데이터를 가져올 수 있습니다. 예를 들어 3 개의 테이블은이 경우 다소 복잡한 구조를가집니다.

이 경우 3 개가 주 테이블에 추가되고 여러 데이터 선택 조건이 입력됩니다.

연산자 Inner Join을 사용할 때 쿼리가 복잡할수록 구현 시간이 길어 지므로 작업을보다 신속하게 수행하고 해결할 수있는 방법을 찾아 볼 가치가 있음을 기억하십시오.

결론

결국, 저는 한 가지 말씀 드리고 싶습니다. 데이터베이스 작업은 프로그래밍에서 가장 어려운 일이 아니므로 모든 사람이 데이터베이스 구축에 대한 지식을 습득하고 궁극적으로 경험을 쌓을 수 있다면 전문적인 수준에서 작업 할 수 있습니다. .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.delachieve.com. Theme powered by WordPress.