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

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

MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。

1. 元となるテーブルを作成する

まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。

mysql> create table DemoTable1
    -> (
    -> Id int,
    -> FirstName varchar(20)
    -> );
Query OK, 0 rows affected (0.49 sec)

2. サンプルデータを挿入する

INSERT文を使って、DemoTable1にレコードを追加します。

mysql> insert into DemoTable1 values(101,'Adam');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1 values(102,'John');
Query OK, 1 row affected (0.11 sec)

SELECT文で全レコードを表示して確認してみましょう。

mysql> select *from DemoTable1;

実行すると、以下のような出力が得られます。

+------+-----------+
| Id   | FirstName |
+------+-----------+
|  101 | Adam      |
|  102 | John      |
+------+-----------+
2 rows in set (0.00 sec)

3. コピー先のテーブルを作成する

次に、データの挿入先となる2つ目のテーブル「DemoTable2」を作成します。ここではカラム名を EmployeeIdEmployeeName としています。ポイントは、元テーブルとカラム名が異なっていても問題ないという点です。

mysql> create table DemoTable2
    -> (
    -> EmployeeId int,
    -> EmployeeName varchar(20)
    -> );
Query OK, 0 rows affected (0.42 sec)

4. INSERT INTO SELECT文でデータをコピーする

いよいよ、あるテーブルから別のテーブルへデータを挿入するクエリです。INSERT INTO の後にコピー先のカラム名を指定し、SELECT 文で元テーブルから取得した値をそのまま流し込みます。

mysql> insert into DemoTable2(EmployeeId,EmployeeName) select Id,FirstName from DemoTable1;
Query OK, 2 rows affected (0.15 sec)
Records: 2 Duplicates: 0 Warnings: 0

「Query OK, 2 rows affected」と表示され、2件のレコードが正常にコピーされたことがわかります。

5. 結果を確認する

DemoTable2に対してSELECT文を実行し、データが正しく挿入されているか確認しましょう。

mysql> select *from DemoTable2;

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

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|        101 | Adam         |
|        102 | John         |
+------------+--------------+
2 rows in set (0.00 sec)

まとめ

MySQLでテーブル間のデータコピーを行うには、INSERT INTO コピー先テーブル(カラム名...) SELECT カラム名... FROM コピー元テーブル という構文を使うのが基本です。カラム名や順序が異なるテーブル間でも、対応関係を明示的に指定すれば柔軟にデータを移行できます。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文で別のテーブルの値を挿入する方法

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