SQL에서 두 테이블 병합

Sqleseo Du Teibeul Byeonghab



SQL에서 테이블 병합은 특정 데이터베이스에 있는 두 개의 개별 테이블의 데이터를 공통 열 또는 기준에 따라 단일 단위로 결합하는 프로세스를 의미합니다. 예, 그것이 테이블처럼 들린다면, 그것이 바로 그 것입니다.

테이블 조인 또는 테이블 병합은 관계형 데이터베이스의 잘 알려진 기능이며 매우 강력합니다. 이를 통해 여러 소스의 정보를 통합하여 보다 일관되고 의미 있는 데이터 통찰력을 얻을 수 있습니다. 또한 나중에 참조할 수 있도록 데이터를 더 작고 관리 가능한 덩어리로 나눌 수 있으므로 관계형 데이터베이스의 확장성이 뛰어납니다(유연하지 않음).

이 튜토리얼에서는 테이블 조인 또는 테이블 병합의 기본 사항을 다룹니다. 지식을 확고히 하기 위해 실제 테이블 샘플을 살펴보겠습니다.







샘플 테이블

테이블 조인의 세계로 들어가기 전에 데모 목적으로 사용할 기본 테이블을 설정해 보겠습니다.



다음 예제 쿼리에 표시된 것처럼 직원 및 급여 정보가 포함된 두 개의 테이블을 고려해 보세요.



CREATE TABLE 직원(

직원 ID INT AUTO_INCREMENT 기본 키,

이름 VARCHAR( 오십 ),

성 VARCHAR( 오십 ),

부서 VARCHAR( 오십 )

);

그런 다음 다음 쿼리에 표시된 대로 직원 테이블에 샘플 데이터를 삽입할 수 있습니다.





INSERT INTO 직원(이름, 성, 부서) VALUES

( '앨리스' , '스미스' , '인적 자원' ),

( '단발' , '존슨' , '마케팅' ),

( '백인' , '윌슨' , '재원' ),

( '데이비드' , '갈색' , '매상' ),

( '에바' , '데이비스' , '공학' );

급여 정보를 저장할 새 테이블을 다음과 같이 생성해 보겠습니다.

CREATE TABLE 급여(

급여 ID INT AUTO_INCREMENT 기본 키,

직원_ID INT,

급여 DECIMAL( 10 , 2 ),

시작_날짜 DATE,

end_date DATE,

FOREIGN KEY (employee_id) REFERENCES 직원(employee_id)

);

다음과 같이 테이블에 삽입 샘플 데이터를 추가합니다.



INSERT INTO 급여(직원 ID, 급여, 시작 날짜, 종료 날짜) VALUES
( 1 , 60000.00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000.00 , '2023-01-01' , '2023-12-31' ),
( , 65000.00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000.00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000.00 , '2023-01-01' , '2023-12-31' );

이는 SQL의 테이블 조인/병합 개념을 보여 주는 데 도움이 되는 두 개의 테이블을 제공합니다.

SQL 테이블 병합/테이블 조인

수행할 수 있는 다양한 유형의 테이블 병합을 살펴보겠습니다. 우리는 더 발전된 것들로 진행하면서 기본적인 것들을 다룰 것입니다.

내부 조인

SQL에서 테이블 조인의 첫 번째이자 가장 일반적인 유형은 INNER JOIN입니다. INNER JOIN을 사용하면 특정 조건에 따라 두 테이블의 행을 결합할 수 있습니다. 그런 다음 이 유형은 테이블 간에 일치하는 행만 반환합니다.

앞서 생성한 '직원' 및 '급여' 테이블을 예로 들어 보겠습니다. SQL에서 INNER JOIN을 수행하려면 다음과 같이 INNER JOIN 절을 사용합니다.

선택하다

e.직원_ID,

e.이름_이름,

e.성,

e.부서,

s.급여

에서

직원 전자

INNER JOIN 급여

e.employee_id = s.employee_id;

주어진 예제 쿼리에서는 INNER JOIN을 사용하여 두 테이블에 존재하는 'employee_id' 열의 'employees' 및 'salaries' 테이블을 병합합니다. 결과 집합에는 두 테이블의 일치하는 행만 포함됩니다.

출력 예는 다음과 같습니다.

왼쪽 외부 조인

또한 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결합하는 LEFT OUTER JOIN도 있습니다. 오른쪽 테이블에 일치하는 항목이 없으면 조인은 NULL 값을 사용합니다.

선택하다

e.직원_ID,

e.이름_이름,

e.성,

e.부서,

s.급여

에서

직원 전자

LEFT JOIN 급여 s



e.employee_id = s.employee_id;

이 예에서는 LEFT OUTER JOIN을 수행하여 'employees' 테이블과 'salaries' 테이블을 병합합니다. 'employees' 테이블의 모든 행이 포함되고 'salaries' 테이블의 일치하는 행이 추가됩니다. 그러나 일치하지 않는 행의 '급여' 열에는 NULL 값이 포함됩니다.

SQL 유니온

SQL에서 테이블을 조인하는 또 다른 방법은 UNION 연산자를 사용하는 것입니다. 이 연산자를 사용하면 두 개 이상의 select 문의 결과를 단일 결과 집합으로 결합할 수 있습니다.

Union을 적용하려면 각 SELECT 문의 열에 동일한 데이터 형식이 있어야 합니다.

예는 다음과 같습니다.

SELECT 직원 ID, 이름, 성, 이름, 부서, NULL AS 급여

직원으로부터

노동 조합

SELECT 직원 ID, NULL AS 이름, NULL AS 성, NULL AS 부서, 급여

에서 급여 s ;

이 경우 UNION은 '직원' 테이블과 '급여' 테이블을 병합합니다. 그런 다음 각 SELECT 문에 NULL 열을 생성하여 두 테이블의 열 수가 비슷한지 확인합니다.

UNION은 기술적으로는 일반적이지만 특히 테이블을 다른 구조와 병합해야 할 때 유용할 수 있습니다.

결론

이 튜토리얼에서는 두 테이블을 단일 결과 세트로 조인/병합하는 기본 사항을 살펴보았습니다. 이 게시물에서는 더 많은 고급 조인에 대해 논의한다는 점을 명심하는 것이 좋습니다.