MySQL で一時テーブルを作成する

Preet Sanghavi 2023年1月30日
  1. MySQL で基本的な一時テーブルを作成する
  2. SELECT クエリから一時テーブルを作成する
MySQL で一時テーブルを作成する

このチュートリアルでは、MySQL で一時テーブルを作成するためのさまざまな方法を検討することを目的としています。

一時テーブルの重要な機能の 1つは、暫定データの格納に役立つことです。この機能は、MySQL バージョン 3.23 以降で有効になっています。

ユーザーが手動でテーブルを削除するか、セッションが終了すると、これらのテーブルは失われます。

一時テーブルのもう 1つの機能は、同じ名前のテーブルを複数の接続で使用できることです。これは、クライアントがクライアントによって作成された一時テーブルのみを処理できるために可能になります。

MySQL で一時テーブルを作成する主な方法は 2つあります。

  • 基本的な一時テーブルの作成。
  • SELECT クエリからの一時的なテーブルの作成。

ただし、開始する前に、操作するダミーデータセットを作成します。ここでは、テーブル student_details とその中のいくつかの行を作成します。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

上記のクエリは、学生の名前と名前を含む行とともにテーブルを作成します。データのエントリを表示するために、次のコードを使用します。

SELECT * FROM student_details;

上記のコードは、次の出力を提供します。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

次に、student_details テーブルに似た students_temporary という名前の一時テーブルを作成しましょう。

MySQL で基本的な一時テーブルを作成する

一時テーブルを作成する最も基本的な方法の 1つは、TEMPORARY キーワードを使用することです。次のように、students_teporary という名前の一時テーブルを作成できます。

-- Basic temporary table creation
CREATE TEMPORARY TABLE students_teporary(
      stu_id int,
      stu_firstName varchar(255) DEFAULT NULL,
      stu_lastName varchar(255) DEFAULT NULL,
      primary key(stu_id)
    );

上記のコードは、students_temporary という名前の一時テーブルを作成します。次に、次のコードを使用して、このテーブルにいくつかのエントリを挿入します。

-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

前述のコードを出力すると、次のような一時テーブルが作成されます。

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

SELECT クエリから一時テーブルを作成する

一時テーブルを作成するもう 1つの方法は、select ステートメントを使用することです。このメソッドは、テーブル全体を同じエンティティとデータ型の一時テーブルに複製するのに役立ちます。SELECT ステートメントを使用して、一時テーブル students_details_temporary を作成してみましょう。これは、次のコードで実行できます。

-- Replicating the students_details table
CREATE TEMPORARY TABLE IF NOT EXISTS students_details_temporary AS (SELECT * FROM students_details);
上記のクエリでは、IF NOT EXISTS を使用して、データベースに student_details_temporary という名前のテーブルがないことを確認します。

前述のコードは、次の出力を提供します。

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

ご覧のとおり、元のテーブル(student_details)と同じエンティティとエントリを持つ一時テーブルが生成されています。

したがって、上記の 2つの方法を使用すると、一時テーブルを効率的に作成できます。この一時テーブルは、最後の接続が終了するとすぐに削除されます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Table