Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 임시 테이블(Temporary Table)이란? 개념부터 생성 방법까지 총정리

임시 테이블(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'라는 이름의 임시 테이블을 생성하고, 그 안에 값을 성공적으로 삽입한 결과입니다. 이처럼 임시 테이블은 세션 내에서만 유효하기 때문에, 복잡한 쿼리의 중간 결과를 저장하거나 리포팅용 집계 데이터를 처리할 때 매우 편리하게 활용할 수 있습니다.