MySQLであるテーブルから別のテーブルへデータをコピーする最も簡単な方法
MySQLでテーブル間のデータコピーを行う基本手順
MySQLであるテーブルから別のテーブルへデータをコピーするには、INSERT INTO ... SELECT文を使うのが最もシンプルで効率的な方法です。ここでは、実際の例を通じてその手順をわかりやすく解説します。
ステップ1:コピー元のテーブルを作成する
まず、データのコピー元となる最初のテーブルを作成します。
mysql> CREATE table FirstTable
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.61 sec)
ステップ2:テーブルにレコードを挿入する
次に、作成したテーブルにサンプルデータを挿入します。
mysql> INSERT into FirstTable values(1,'john');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT into FirstTable values(2,'Smith');
Query OK, 1 row affected (0.21 sec)
ステップ3:SELECT文で登録内容を確認する
SELECT文を使えば、テーブル内のすべてのレコードを表示できます。
mysql> SELECT * From FirstTable;
実行結果は以下のとおりです。
+------+-------+
| id | name |
+------+-------+
| 1 | john |
| 2 | Smith |
+------+-------+
2 rows in set (0.00 sec)
ステップ4:コピー先のテーブルを作成する
続いて、データのコピー先となる2つ目のテーブルを作成します。カラム構成はコピー元と同じにしておきます。
mysql> CREATE table SecondTable
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.69 sec)
ステップ5:INSERT INTO ... SELECT文でデータをコピーする
いよいよデータをコピーします。以下のように、INSERT INTO文とSELECT文を組み合わせることで、コピー元テーブルの全レコードを一括で挿入できます。
mysql> INSERT INTO SecondTable (id,name)
-> select id,name from FirstTable;
Query OK, 2 rows affected (0.17 sec)
Records: 2 Duplicates: 0 Warnings: 0
「Records: 2」と表示されていることから、2件のレコードが正常にコピーされたことがわかります。
ステップ6:コピー結果を確認する
最後に、SELECT文でコピー先のテーブルを確認し、データが正しくコピーされているかチェックしましょう。
mysql> SELECT * from SecondTable;
実行結果は以下のとおりです。
+------+-------+
| id | name |
+------+-------+
| 1 | john |
| 2 | Smith |
+------+-------+
2 rows in set (0.00 sec)
まとめ
MySQLでテーブル間のデータコピーを行う最も簡単な方法は、INSERT INTO コピー先テーブル (カラム名) SELECT カラム名 FROM コピー元テーブル;という構文を使うことです。この方法なら、大量のデータでも1つのクエリで一括コピーでき、条件を付けたい場合はWHERE句を追加することも可能です。バックアップやテーブルの複製など、さまざまな場面で活用できる便利なテクニックなので、ぜひ覚えておきましょう。
-
【MySQL】別のテーブルのデータを参照してテーブルを更新する方法(UPDATE+JOIN)
MySQLでは、UPDATEコマンドとJOINを組み合わせることで、別のテーブルのデータを参照しながら、対象のテーブルを効率的に更新できます。本記事では、2つのテーブルを使った具体的なサンプルを通じて、その手順をわかりやすく解説します。 手順1:参照元のテーブルを作成する まず、氏名データを保持する1つ目のテーブル「demo54」を作成します。 mysql> create table demo54-> (-> firstName varchar(20),-> lastName varchar(20)-> );Query OK, 0 rows affected (
-
MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)
MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi