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

MySQL에서 임시 테이블에 테이블 결과를 표시하는 방법

MySQL에서는 CREATE TEMPORARY TABLE 문을 사용하여 기존 테이블의 조회 결과를 임시 테이블에 저장할 수 있습니다. 임시 테이블은 세션이 종료되면 자동으로 삭제되므로, 일시적인 데이터 작업에 매우 유용합니다.

1. 기본 테이블 생성

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1 (Id int, Name varchar(100));
Query OK, 0 rows affected (0.89 sec)

2. 데이터 삽입

INSERT 명령을 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable1 values(100,'John');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1 values(110,'Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1 values(120,'Robert');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1 values(130,'David');
Query OK, 1 row affected (0.14 sec)

3. 원본 테이블 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------+--------+
| Id   | Name   |
+------+--------+
|  100 | John   |
|  110 | Chris  |
|  120 | Robert |
|  130 | David  |
+------+--------+
4 rows in set (0.00 sec)

4. 임시 테이블에 결과 저장

다음은 테이블의 결과를 임시 테이블에 저장하는 쿼리입니다. CREATE TEMPORARY TABLE ... SELECT 구문을 활용하면 기존 테이블의 구조와 데이터를 그대로 복사할 수 있습니다.

mysql> create temporary table DemoTable2
   select * from DemoTable1;
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0

5. 임시 테이블 데이터 확인

생성된 임시 테이블의 레코드가 정상적으로 복사되었는지 확인해 보겠습니다.

mysql> select * from DemoTable2;

실행 결과는 다음과 같습니다.

+------+--------+
| Id   | Name   |
+------+--------+
|  100 | John   |
|  110 | Chris  |
|  120 | Robert |
|  130 | David  |
+------+--------+
4 rows in set (0.00 sec)

참고 사항

임시 테이블은 현재 데이터베이스 연결(세션)에서만 유효하며, 세션이 종료되거나 연결이 끊어지면 자동으로 삭제됩니다. 또한 동일한 이름의 일반 테이블이 존재하더라도 임시 테이블이 우선적으로 참조되므로, 복잡한 쿼리 작업이나 중간 결과 저장에 안전하게 활용할 수 있습니다.