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

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句を追加することも可能です。バックアップやテーブルの複製など、さまざまな場面で活用できる便利なテクニックなので、ぜひ覚えておきましょう。

  1. 【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 (

  2. MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)

    MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi