MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの一時テーブル(TEMPORARY TABLE)とは?作成方法と使い方をわかりやすく解説

一時テーブル(Temporary Table)とは、その名の通り、一時的なデータを保存するためのテーブルです。一時テーブルの最大の特徴は、現在のクライアントセッションが終了すると自動的に削除されるという点にあります。そのため、セッション内でのみ必要な中間計算結果や作業用データの保存に非常に便利です。

一時テーブルの作成方法

一時テーブルは通常のCREATE文で作成できますが、その際に必ず「TEMPORARY」キーワードを指定する必要があります。このキーワードがあることで、MySQLはそのテーブルを一時テーブルとして扱い、セッション終了時に自動的に削除します。

作成例

以下の例では、「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)

mysql> INSERT INTO SalesSummary
    -> (product_name, total_sales, avg_unit_price, total_units_sold)
    -> VALUES
    -> ('cucumber', 100.25, 90, 2);

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」という一時テーブルを作成し、その後に商品名・売上合計・平均単価・販売数量のデータを挿入しています。最後にSELECT文で内容を確認すると、通常のテーブルと同じようにデータを参照できることがわかります。

一時テーブルの主な特徴

  • セッション終了時に自動削除: クライアントとの接続が切れると、テーブルは自動的に削除されます。
  • 他のセッションからは見えない: 一時テーブルは作成したセッションでのみ有効なため、他の接続やユーザーと名前が衝突する心配がありません。
  • 通常のテーブルと同様に操作可能: SELECT、INSERT、UPDATE、DELETEなど、一般的なSQL操作が利用できます。

このように、一時テーブルはレポートの中間集計や複雑なクエリの作業領域など、セッション内で完結する一時的なデータ処理において非常に役立つ機能です。

  1. 複数テーブルのデータを組み合わせてMySQLビューを作成する方法(UNION演算子の活用)

    MySQLでは、UNION演算子を使うことで、2つ以上のSELECT文の結果セットを1つに結合できます。この特性を利用すれば、複数のテーブルから取得したデータをまとめたビュー(VIEW)を簡単に作成できます。ここでは、以下のような2つの基本テーブル「Student_info」と「Student_detail」を例に説明します。サンプルテーブル:Student_infomysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address |

  2. 【初心者向け】2つのMySQLテーブルをマージ(統合)する方法をわかりやすく解説

    2つのMySQLテーブルをマージする方法 2つのMySQLテーブルをマージ(統合)するには、INSERT IGNOREステートメントとSELECT文を組み合わせて使用します。基本構文は以下の通りです。 INSERT IGNORE INTO yourTableName1 select *from yourTableName2; この構文では、マージ元テーブル(yourTableName2)のすべてのレコードが、マージ先テーブル(yourTableName1)に挿入されます。IGNOREキーワードを付けることで、主キーの重複などによるエラーが発生しても処理が中断されず、重複行は自動的にスキップされ