임시 테이블(Temporary Table)은 이름 그대로 일시적인 데이터를 저장하는 테이블입니다. 임시 테이블의 가장 중요한 특징은 현재 클라이언트 세션이 종료되면 자동으로 삭제된다는 점입니다.
MySQL 임시 테이블의 주요 특징
- 세션 종료 시 자동으로 삭제되므로 별도의 정리 작업이 필요 없습니다.
- 동일한 이름의 일반 테이블이 있어도 충돌 없이 사용할 수 있습니다(세션별로 독립적).
- 복잡한 중간 계산 결과나 집계 데이터를 잠시 보관할 때 유용합니다.
임시 테이블 생성 방법
임시 테이블은 CREATE 문을 사용해 생성하며, 이때 반드시 'TEMPORARY' 키워드를 함께 명시해야 합니다. 다음 예제를 통해 임시 테이블의 생성 과정을 살펴보겠습니다.
예제: SalesSummary 임시 테이블 만들기
mysql> CREATE TEMPORARY TABLE SalesSummary (
-> product_name VARCHAR(50) NOT NULL
-> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
-> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
-> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)테이블이 생성되면 일반 테이블과 동일하게 INSERT 문으로 데이터를 삽입할 수 있습니다.
mysql> INSERT INTO SalesSummary
-> (product_name, total_sales, avg_unit_price, total_units_sold)
-> VALUES
-> ('cucumber', 100.25, 90, 2);데이터가 정상적으로 저장되었는지 SELECT 문으로 확인해 보겠습니다.
mysql> SELECT * FROM SalesSummary; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber | 100.25 | 90.00 | 2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec)
위의 쿼리들은 'SalesSummary'라는 이름의 임시 테이블을 생성하고, 그 안에 값을 성공적으로 삽입한 결과입니다. 이처럼 임시 테이블은 세션 내에서만 유효하기 때문에, 복잡한 쿼리의 중간 결과를 저장하거나 리포팅용 집계 데이터를 처리할 때 매우 편리하게 활용할 수 있습니다.