본문 바로가기
Programming/SQL

[MySQL] TEMPORARY TABLE 임시 테이블 다루기

by 코딩하는 금융인 2024. 2. 13.

안녕하세요.

오늘은 MySQL의 임시 테이블(Temporary Table)에 대해서 상세히 알아보겠습니다.

 

 MySQL Temporary Table에 대하여

▣ Temporary Table 의미 및 특징

단일 세션에서 여러 번 재사용 가능한 임시 결과를 저장할 수 있는 특수한 유형의 테이블

 

 - 반복적인 SELECT문 실행 시 또는 대량의 집계 쿼리 같이 비용이 많이 들 때 유용하게 활용 가능함

 - 임시 테이블을 생성한 Client에게만 사용 및 접근 권한이 있으며, 세션이나 연결이 종료될 때 자동으로 삭제됨

 - 같은 이름의 2개 이상의 Temporary Table(이하 Temp)은 생성될 수 없으나, 일반 테이블과 같은 이름의 Temp은 생성할 수 있음     (다만, 기존에 있는 일반 테이블은 접근할 수 없으며, 모든 접근은 같은 이름의 Temp로 가게 됨)

 

: CTE(Common Table Expressions) 비교

 - CTE와 Temp는 모두 데이터 관리 및 조작을 위해 SQL에서 활용할 수 있는 유용한 도구

 - CTE는 소규모 데이터 세트에서 효율적이며, Temp은 큰 규모의 데이트 세트에서 효율적

 

※ CTE에 대해서 더 궁금하신 분들은 아래 글을 참고하시기 바랍니다.

2021.11.18 - [Programming/SQL] - [MySQL] with CTE (공통 테이블 표현식)

 

▣ Temporary Table 다루기 (생성 및 삭제)

 - 생성하거나 삭제하는 것은 기존 SQL문에서 TEMPORARY만 TABLE 앞에 추가하면 됨

 - 앞서 말했듯이, 하나의 세션 안에서 임시 테이블을 생성하고 조회하여야만 사용할 수 있음

-- 임시 테이블 생성 및 조회하기
CREATE TEMPORARY TABLE table[테이블명]

-- 조회 시 집계문 등 활용 가능
SELECT *, SUM(DISTINCT COL1) FROM table[테이블명];

 

 - 임시 테이블 삭제 시 TEMPORARY를 붙이지 않아도 삭제가 가능하지만, 테이블명 중복 가능성이 있기에 TEMPORARY를 붙여주는 것이 안전함

DROP TEMPORARY TABLE table[테이블명];

 

 

 

반응형

댓글