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

MySQLのINSERT INTO…SELECT文であるテーブルから別のテーブルへデータをコピーする方法

MySQLでは、INSERT INTO ... SELECT文を使うことで、既存のテーブルからデータを取得し、そのまま別のテーブルへ挿入できます。この記事では、実際にサンプルテーブルを作成しながら、テーブル間でデータをコピーする手順を順番に解説します。

手順1:コピー元のテーブルを作成する

まず、コピー元となるテーブル「DemoTabe1」を作成します。

mysql> create table DemoTabe1 (Marks int);
Query OK, 0 rows affected (0.66 sec)

手順2:データを挿入する

INSERTコマンドを使って、テーブルにいくつかのレコードを追加しましょう。

mysql> insert into DemoTabe1 values(68);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTabe1 values(89);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTabe1 values(99);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTabe1 values(39);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTabe1 values(49);
Query OK, 1 row affected (0.12 sec)

手順3:レコードを確認する

SELECT文で、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTabe1;

実行結果は以下のとおりです。

+-------+
| Marks |
+-------+
| 68    |
| 89    |
| 99    |
| 39    |
| 49    |
+-------+
5 rows in set (0.00 sec)

手順4:コピー先のテーブルを作成する

次に、データのコピー先となる2つ目のテーブル「DemoTabe2」を作成します。

mysql> create table DemoTabe2 (Score int);
Query OK, 0 rows affected (0.66 sec)

手順5:INSERT INTO … SELECTでデータをコピーする

以下のクエリを実行すると、DemoTabe1の「Marks」列の値が、DemoTabe2の「Score」列へ一括で挿入されます。

mysql> insert into DemoTabe2(Score) select Marks from DemoTabe1;
Query OK, 5 rows affected (0.16 sec)
Records: 5 Duplicates: 0 Warnings: 0

手順6:コピー結果を確認する

SELECT文でDemoTabe2の内容を確認してみましょう。

mysql> select *from DemoTabe2;

実行結果を見ると、DemoTabe1と同じレコードが2つ目のテーブルにも正しくコピーされていることがわかります。

+-------+
| Score |
+-------+
| 68    |
| 89    |
| 99    |
| 39    |
| 49    |
+-------+
5 rows in set (0.00 sec)

まとめ

INSERT INTO テーブル名(列名) SELECT 列名 FROM コピー元テーブル;という構文を使えば、SELECT文で取得した結果セットをそのまま別のテーブルへ挿入できます。WHERE句などを組み合わせれば、条件に一致するデータだけを抽出してコピーすることも可能です。テーブル間でのデータ移行や複製を行いたい場合に非常に便利な構文なので、ぜひ活用してください。

  1. MySQLのINSERT INTO SELECT文で別のテーブルの値を挿入する方法

    あるテーブルの値を基に別のテーブルへデータを挿入したい場合は、INSERT INTO SELECT文を使用します。この構文では、SELECT文で抽出した結果セットをそのまま対象テーブルへ流し込めるため、テーブル間のデータ移行やコピーにもっとも効率的な方法の一つです。 以下の手順で、実際の動作を順番に確認していきましょう。 手順1:元となるテーブルを作成する まず、データのコピー元となるテーブル「demo82」を作成します。 mysql> create table demo82     -> (     

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

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