본문 바로가기

PostgreSQL

조인(Join) - 조인 기반 메커니즘

조인

- 관계형 DB에서 가장 기본이자 중요한 기능

- 두 개 이상의 테이블을 서로 연결하여 데이터를 추출

- 관계형 DB에서는 조인을 통해 서로 다른 테이블간의 정보를 원하는 대로 가져올 수 있음.

 

조인 시 데이터 집합 레벨의 변화

SELECT * FROM hr.emp;

M 집합 직원 테이블

 

SELECT * FROM hr.dept

1 집합 부서 테이블

 

select * from hr.dept d join hr.emp e on d.deptno = e.deptno;

- 1:M 조인 시 결과 집합은 M 집합의 레벨을 그대로 유지. SQL문 작성 순서와 상관 없음!!

 

문법 정리

1. WITH절 (CTE: Common Table Expression)

WITH절은 서브쿼리에 이름을 붙여 재사용하거나 쿼리를 깔끔하게 정리할 수 있는 기능입니다.

WITH temp AS (
  SELECT deptno, COUNT(*) AS emp_count
  FROM emp
  GROUP BY deptno
)
SELECT * FROM temp;
  • temp임시 테이블처럼 사용 가능
  • 복잡한 서브쿼리를 미리 정의해서 가독성, 유지보수성 향상

 

2. ORDER BY 1, 2, 3

ORDER BY 숫자SELECT 절의 컬럼 순서 기준으로 정렬하는 기능입니다

SELECT dname, empno, ename
FROM emp
ORDER BY 1, 2;
  • ORDER BY 1 → 첫 번째 컬럼 (dname)
  • ORDER BY 2 → 두 번째 컬럼 (empno)
  • 컬럼명을 다시 안 써도 돼서 간결하지만, 가독성을 위해 컬럼명을 쓰는 것이 권장되기도 함

Inner 조인, Left/Right Outer 조인, Full Outer 조인의 이해

from A
	join B on A.key = B.key
    
from B
	join A on A.key = B.key

Inner조인에서는 조인 순서가 의미가 없다. 1:M일 경우 M 레벨의 집합이 기준이 된다.

 

from A
	left join B on A.key = B.key

Left Outer조인의 경우에는 결과가 M쪽 집합 레벨인건 변함없지만 왼쪽 집합과 교집합인 오른쪽 집합이 없더라도 왼쪽집합에 NULL 출력 

'PostgreSQL' 카테고리의 다른 글

실습환경 구축  (0) 2025.04.14