MySQLでテーブルの結果を一時テーブルに表示・保存する方法
MySQLでは、CREATE TEMPORARY TABLE文とSELECT文を組み合わせることで、既存テーブルのクエリ結果をそのまま一時テーブルに保存できます。一時テーブルはセッション中のみ有効で、接続が切れると自動的に削除されるため、作業用データの退避や中間集計などに便利です。
この記事では、実際のサンプルを使って、通常のテーブルから一時テーブルを作成し、結果を表示する手順を解説します。
1. 元となるテーブルを作成する
まず、サンプル用のテーブル「DemoTable1」を作成します。Id(整数型)とName(可変長文字列)の2つのカラムを定義します。
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文を続けて記述すると、元テーブルの全データを一時テーブル「DemoTable2」へ一度にコピーできます。
mysql> create temporary table DemoTable2 select *from DemoTable1; Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0
実行結果を見ると、「Records: 4」と表示されており、4件のレコードが正常にコピーされたことがわかります。
5. 一時テーブルの中身を確認する
最後に、一時テーブルのレコードをSELECT文で表示してみましょう。
mysql> select *from DemoTable2;
出力は以下の通りです。元テーブルと同じデータが格納されていることが確認できます。
+------+--------+ | Id | Name | +------+--------+ | 100 | John | | 110 | Chris | | 120 | Robert | | 130 | David | +------+--------+ 4 rows in set (0.00 sec)
補足:一時テーブルの特徴と注意点
- セッション単位で有効: 一時テーブルは作成したセッション(接続)内でのみ参照でき、他のセッションからは見えません。
- 自動削除: セッションが終了すると自動的に削除されるため、後片付けの手間がありません。明示的に削除したい場合は
DROP TEMPORARY TABLEを使用します。 - 同名テーブルとの共存: 通常のテーブルと同じ名前の一時テーブルを作成した場合、セッション内では一時テーブルが優先されます。
- WHERE句や絞り込みも可能:
select * from DemoTable1 where Id > 110;のように条件を付ければ、必要な行だけを一時テーブルにコピーすることもできます。
このように、CREATE TEMPORARY TABLE ... SELECT構文を使えば、わずか1文でテーブルの結果を一時テーブルに複製できます。大量データの中間処理やレポート作成時にぜひ活用してください。
-
Javaを使用してMySQLテーブルの値を表示する方法
MySQLデータベースのテーブル値をJavaで表示するには、ResultSetの概念を利用します。データベースへの接続には、MySQL JDBCドライバーを使用します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table demo87 -> ( -> name varchar(20), -> age int -> )
-
【Spring Boot】HibernateでMySQLのテーブルを自動作成する方法
Spring BootとHibernateを組み合わせると、エンティティクラスから自動的にMySQLのテーブルを作成できます。本記事では、application.propertiesの設定だけでテーブルを自動生成する手順を、実際のコード例とともにわかりやすく解説します。1. application.propertiesの設定テーブルを自動作成するには、まずapplication.propertiesに以下の1行を追加します。spring.jpa.hibernate.ddl-auto=updateddl-auto=updateを指定すると、アプリケーションの起動時にHibernateがエンティテ