
324
러닝 SQL
14.2.4
분할 데이터의 조인
일부 데이터베이스는 설계 시에 성능을 높이고자 큰 테이블을 여러 조각으로 나눕니다. 예
를 들어
payment
테이블이 커지면 설계자는 이 테이블을 최근
6
개월의 데이터를 보유하는
payment
_
current
테이블과, 최근
6
개월 이전의 모든 데이터를 보유하는
payment
_
historic
테이블로 나눌 수 있습니다. 만약 고객이 특정 고객에 대한 모든 결제 내역을 보려면 두 테이블
을 모두 조회해야 합니다. 그러나 두 테이블을 모두 쿼리하고 결과를 결합하는 뷰를 작성하면
모든 결제 데이터가 마치 단일 테이블에 저장된 것처럼 보일 수 있습니다. 뷰 정의는 다음과 같
습니다.
CREATE VIEW payment_all
(payment_id,
customer_id,
staff_id,
rental_id,
amount,
payment_date,
last_update
)
AS
SELECT payment_id, customer_id, staff_id, rental_id,
amount, payment_date, last_update
FROM payment_historic
UNION ALL
SELECT payment_id, customer_id, staff_id, rental_id,
amount, payment_date, last_update ...