조인
- 관계형 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 |
---|