PostgreSQL 접합 유형: 내부, 외부, 좌측, 우측

⚡ 스마트 요약

PostgreSQL 조인은 공유 키를 사용하여 두 개 이상의 테이블에서 행을 검색하고 결합하며, 세타, EQUI, 내추럴과 같은 내부 조인과 왼쪽, 오른쪽, 전체 결과를 포함하는 외부 조인을 포함합니다.

  • 🔗 콤바인: 조인은 공통 키를 기준으로 여러 테이블의 열을 병합합니다.
  • 🎯 내부 조인 : 내부 조인은 조인 조건이 충족되는 행만 반환합니다.
  • ⬅️ 왼쪽 조인 : LEFT OUTER JOIN은 왼쪽 테이블의 모든 행을 유지하고, 오른쪽 테이블에서 일치하지 않는 행에는 NULL 값을 추가합니다.
  • 오른쪽 가입 : RIGHT OUTER JOIN은 오른쪽 테이블의 모든 행을 유지하고, 왼쪽 테이블의 일치하지 않는 행에는 NULL 값을 추가합니다.
  • ???? 완전 조인: FULL OUTER JOIN은 일치하는 항목이 없는 경우 NULL 값을 포함하여 두 테이블의 모든 행을 반환합니다.
  • 🤖 AI 도움말: AI 어시스턴트는 올바른 조인 유형을 선택하고 ON 조건을 설정합니다.

PostgreSQL 조인 유형

조인이란 무엇입니까? PostgreSQL?

PostgreSQL 조인 조인은 여러 테이블에서 데이터를 가져오는 데 사용됩니다. 조인을 사용하면 SELECT 문과 JOIN 문을 하나의 문으로 결합할 수 있습니다. JOIN 조건이 문에 추가되고, 조건을 만족하는 모든 행이 반환됩니다. 서로 다른 테이블의 값은 공통 열을 기준으로 결합됩니다. 공통 열은 대부분 첫 번째 테이블의 기본 키이자 두 번째 테이블의 외래 키입니다.

PostgreSQL 조인 유형

조인에는 두 가지 유형이 있습니다. PostgreSQL:

  • 내부 조인
  • 외부 결합

PostgreSQL 내부 조인

내부 조인에는 3가지 유형이 있습니다. PostgreSQL:

  • 세타 조인
  • 자연스러운 결합
  • EQUI 가입

세타 조인

세타 조인은 세타로 표현된 조건에 따라 두 테이블을 조인할 수 있게 해줍니다. 세타 조인은 모든 비교 연산자와 함께 작동할 수 있습니다. 대부분의 경우 세타 조인은 내부 조인이라고 합니다.

Theta 조인은 JOIN의 가장 기본적인 유형입니다. JOIN 조건이 충족되는 테이블의 모든 행을 반환합니다.

구문 :

SELECT columns
FROM table-1
INNER JOIN table-2
ON table-1.column = table-2.column;

다음 데모 데이터베이스 테이블을 살펴보세요.

도서:

PostgreSQL 세타 조인

가격:

PostgreSQL 세타 조인

각 책의 이름과 해당 가격을 보고 싶습니다. 다음 명령을 실행할 수 있습니다.

SELECT Book.name, Price.price
FROM Book
INNER JOIN Price
ON Book.id = Price.id;

다음이 반환됩니다.

PostgreSQL 세타 조인

3개의 행만이 조인 조건을 만족했습니다.

EQUI 가입

EQUI 조인은 기본 키/외래 키 관계를 기반으로 두 테이블을 조인하는 방법을 제공합니다. 예를 들어:

SELECT *
FROM Book
JOIN Price ON Book.id = Price.id;

다음이 반환됩니다.

PostgreSQL EQUI 가입

공통 열, 즉 id 열을 기준으로 두 테이블 모두에서 레코드가 반환되었습니다.

자연 조인

이러한 유형의 조인은 EQUI 조인을 작성하는 또 다른 방법을 제공합니다. 아래와 같이 NATURAL 키워드를 추가하여 이전 예제를 개선할 수 있습니다.

SELECT *
FROM Book
NATURAL JOIN Price;

다음이 반환됩니다.

PostgreSQL 자연 조인

하나의 ID 열만 반환되었습니다. NATURAL JOIN은 id 열이 두 테이블에서 공통이라는 것을 확인할 수 있었습니다. 하나만 반환되었습니다.

PostgreSQL 외부 결합

외부 조인에는 3가지 유형이 있습니다. PostgreSQL:

  • 왼쪽 외부 결합
  • 오른쪽 외부 결합
  • 전체 외부 결합

PostgreSQL 왼쪽 외부 결합

LEFT OUTER JOIN은 왼쪽 테이블의 모든 행을 반환하고 조인 조건이 충족된 오른쪽 테이블의 행만 반환합니다.

구문 :

SELECT columns
FROM table-1
LEFT OUTER JOIN table-2
ON table-1.column = table-2.column;

각 책의 이름과 해당 가격을 확인해야 합니다. 다음 명령을 실행할 수 있습니다.

SELECT Book.name, Price.price
FROM Book
LEFT JOIN Price
ON Book.id = Price.id;

다음을 반환합니다.

PostgreSQL 왼쪽 외부 결합

Book 테이블의 4개 행이 모두 반환되었습니다. Price 테이블의 3개 행만 조인 조건을 충족했습니다. 따라서 그들은 반환되었습니다. 마지막 책에는 해당 가격이 없습니다.

PostgreSQL 오른쪽 외부 결합

RIGHT OUTER JOIN은 오른쪽 테이블의 모든 행과 조인 조건이 충족된 왼쪽 테이블의 행을 반환합니다.

구문 :

SELECT columns
FROM table-1
RIGHT OUTER JOIN table-2
ON table-1.column = table-2.column;

예 :

SELECT Book.name, Price.price
FROM Book
RIGHT JOIN Price
ON Book.id = Price.id;

다음을 반환합니다.

PostgreSQL 오른쪽 외부 결합

Price 테이블의 모든 행이 반환되었습니다. Book 테이블에서는 조인 조건을 만족하는 행만 반환되었습니다. 세 번째 행의 name 필드에는 일치하는 항목이 없으므로 값이 없습니다.

전체 외부 조인 PostgreSQL

이 유형의 JOIN은 조인 조건이 충족되지 않는 null이 포함된 왼쪽 테이블의 모든 행과 오른쪽 테이블의 모든 행을 반환합니다.

구문 :

SELECT columns
FROM table-1
FULL OUTER JOIN table-2
ON table-1.column = table-2.column;

예 :

SELECT Book.name, Price.price
FROM Book
FULL OUTER JOIN Price
ON Book.id = Price.id;

다음을 반환합니다.

PostgreSQL 전체 외부 결합

모든 테이블의 모든 행이 반환되었으며, 일치하는 항목이 없는 경우 null이 반환되었습니다.

pgAdmin 사용

위의 작업은 pgAdmin에서 다음과 같이 수행할 수 있습니다. 다음 섹션에서는 각 조인 유형을 단계별로 설명합니다.

pgAdmin 내부 조인

아래 단계는 pgAdmin에서 각 내부 조인 변형을 실행하는 방법을 보여줍니다.

Theta 가입 방법 PostgreSQL pgAdmin 사용

다음은 Theta Join을 사용하는 단계입니다. PostgreSQL pgAdmin 사용:

1단계) pgAdmin 계정에 로그인하세요.

pgAdmin을 열고 자격 증명을 사용하여 로그인하세요.

2단계) 데모 데이터베이스 생성

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 내부 조인

3단계) ​​쿼리를 입력하세요

쿼리 편집기에 아래 쿼리를 입력합니다.

SELECT Book.name, Price.price
FROM Book
INNER JOIN Price
ON Book.id = Price.id;

4단계) 쿼리 실행

실행 버튼을 클릭하세요

pgAdmin 내부 조인

다음을 반환해야 합니다.

pgAdmin 내부 조인

EQUI 가입

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin EQUI 가입

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT *
FROM Book
JOIN Price ON Book.id = Price.id;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin EQUI 가입

다음을 반환해야 합니다.

pgAdmin EQUI 가입

자연 조인

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 자연 조인

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT *
FROM Book
NATURAL JOIN Price;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin 자연 조인

다음을 반환해야 합니다.

pgAdmin 자연 조인

pgAdmin 단순 내부 조인

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 단순 내부 조인

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT Book.name, Price.price
FROM Book
INNER JOIN Price
ON Book.id = Price.id;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin 단순 내부 조인

다음을 반환해야 합니다.

pgAdmin 단순 내부 조인

pgAdmin 외부 조인

다음으로, 아래 단계를 따라 pgAdmin에서 세 가지 외부 조인 변형을 실행하십시오.

왼쪽 외부 결합

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 왼쪽 외부 조인

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT Book.name, Price.price
FROM Book
LEFT JOIN Price
ON Book.id = Price.id;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin 왼쪽 외부 조인

다음을 반환해야 합니다.

pgAdmin 왼쪽 외부 조인

오른쪽 외부 결합

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 오른쪽 외부 조인

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT Book.name, Price.price
FROM Book
RIGHT JOIN Price
ON Book.id = Price.id;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin 오른쪽 외부 조인

다음을 반환해야 합니다.

pgAdmin 오른쪽 외부 조인

전체 외부 결합

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  • 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  • 데모를 클릭하세요.

pgAdmin 전체 외부 조인

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

SELECT Book.name, Price.price
FROM Book
FULL OUTER JOIN Price
ON Book.id = Price.id;

단계 4) 실행 버튼을 클릭하세요.

pgAdmin 전체 외부 조인

다음을 반환해야 합니다.

pgAdmin 전체 외부 조인

이 튜토리얼에 사용된 데이터베이스 다운로드

자주 묻는 질문

INNER JOIN은 두 테이블에서 일치하는 행만 반환합니다. OUTER JOIN은 일치하지 않는 행도 유지하며, 누락된 열은 NULL로 채웁니다. 또한, 어떤 테이블을 보존할지에 따라 왼쪽 조인, 오른쪽 조인 또는 전체 조인이 될 수 있습니다.

JOIN은 일치하는 키를 사용하여 서로 다른 테이블의 열을 나란히 결합하며 각 행의 너비를 늘립니다. UNION은 두 결과 집합의 행을 세로로 쌓으며 동일한 수의 열이 필요합니다.

셀프 조인은 두 테이블 별칭을 사용하여 테이블을 자기 자신과 조인합니다. 이는 같은 테이블에 저장된 직원과 관리자를 비교하는 등, 한 테이블 내의 행들을 비교하는 데 유용합니다.

크로스 조인은 첫 번째 테이블의 모든 행과 두 번째 테이블의 모든 행을 짝지어 카르테시안 곱을 반환합니다. ON 조건을 사용하지 않으므로 매우 큰 결과 집합을 빠르게 생성할 수 있습니다.

네. 하나의 쿼리에서 여러 개의 JOIN 절을 연결할 수 있으며, 각 추가 테이블에 대해 별도의 JOIN 및 ON 조건을 사용하면 됩니다. PostgreSQL 이러한 결과들을 평가하여 하나의 통합 결과 세트를 구축합니다.

GitHub Copilot과 같은 AI 도우미는 올바른 조인 유형을 제안하고, 외래 키에서 ON 조건을 작성하며, 의도치 않은 카르테시안 곱을 유발할 수 있는 누락된 조건을 표시하여 일반적인 조인 오류를 줄여줍니다.

네. AI 어시스턴트는 쿼리 실행 계획을 읽고, 조인 열에 인덱스를 추천하고, 조인 순서나 조건을 다시 작성할 수 있습니다. 하지만 데이터베이스가 여전히 정확성을 검증하므로, 실제 운영 환경에서 실행하기 전에 각 제안 사항을 검토해야 합니다.

어떤 조인도 항상 가장 빠르지는 않습니다. 성능은 인덱스, 행 수, 필터에 따라 달라집니다. 인덱싱된 키를 사용하는 INNER JOIN은 일반적으로 효율적이지만, 인덱스가 없는 대규모 테이블을 사용하는 FULL OUTER JOIN은 비용이 가장 많이 드는 경향이 있습니다.

이 게시물을 요약하면 다음과 같습니다.